<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <base href="https://hibernate.atlassian.net" />
<title>Message Title</title>
</head>
<body class="jira" style="color: #333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429">
<table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<!-- header here -->
<tr>
<td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px">
<table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tr>
<td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px"> <img id="header-avatar-image" class="image_fix" src="https://secure.gravatar.com/avatar/b9788f45efde784b836f6e7fd3b25df5?d=mm&s=48" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top" />
</td>
<td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="romainmoreau" id="email_romainmoreau" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=romainmoreau" style="color:#6c797f;; color: #3b73af; text-decoration: none">Romain Moreau</a> <strong>created</strong> an issue
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px">
<table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate">
<tr>
<!-- there needs to be content in the cell for it to render in some clients -->
<td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly">
</td>
</tr>
<tr>
<td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff">
<table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tr>
<td class="page-title-pattern-first-line " style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://hibernate.atlassian.net/browse/HHH" style="color: #3b73af; text-decoration: none">Hibernate ORM</a> / <a href="https://hibernate.atlassian.net/browse/HHH-9963" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-static-bug-be0ad6bd-2869-44db-a41e-5bd9d251c757" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /></a> <a href="https://hibernate.atlassian.net/browse/HHH-9963" style="color: #3b73af; text-decoration: none">HHH-9963</a>
</td>
</tr>
<tr>
<td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-9963" style="color: #3b73af; text-decoration: none">Unnecessary SELECT with second level cache</a> </span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="email-content-main mobile-expand wrapper-special-margin" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 10px; padding-bottom: 5px">
<table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Issue Type:
</th>
<td class="has-icon" style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-bug-be0ad6bd-2869-44db-a41e-5bd9d251c757" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /> Bug
</td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Affects Versions:
</th>
<td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">
4.3.10
</td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Assignee:
</th>
<td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">
Unassigned
</td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Created:
</th>
<td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">
21/Jul/2015 09:59 AM
</td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Environment:
</th>
<td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">
h2 1.4.187
</td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Priority:
</th>
<td class="has-icon" style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-major-8fe004bd-9a9d-44c3-86ac-31b1e6e74e66" height="16" width="16" border="0" align="absmiddle" alt="Major" style="vertical-align: text-bottom" /> Major
</td>
</tr>
<tr>
<th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
Reporter:
</th>
<td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="romainmoreau" id="email_romainmoreau" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=romainmoreau" style="color:#6c797f;; color: #3b73af; text-decoration: none">Romain Moreau</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="email-content-main mobile-expand issue-description-container" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 5px; padding-bottom: 10px">
<table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px">
<tr>
<td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0">
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">In the TestApplication class, I save a JPA entity 3 times using a Spring Data JPA repository backed by Hibernate configured with a second level cache.</p>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">On the first save, a SQL INSERT is issued by Hibernate. On the second save, two SQL queries are issued by Hibernate : a SELECT and an UPDATE. Finally, on the third save, only a SQL UPDATE is issued by Hibernate.</p>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Why do I have the SELECT query during the second save? The entity should already be in the second level cache after the first save and the second save should behave like the third save.</p>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Test.java:</p>
<div class="code panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="codeContent panelContent" style="padding: 9px 12px">
<pre class="code-java" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
@Entity
@Cacheable
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
<span class="code-keyword" style="color: #000091">public</span> class Test {
@Id
@GeneratedValue
<span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">Long</span> id;
@Column(nullable = <span class="code-keyword" style="color: #000091">false</span>)
<span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">String</span> value;
<span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">Long</span> getId() {
<span class="code-keyword" style="color: #000091">return</span> id;
}
<span class="code-keyword" style="color: #000091">public</span> void setId(<span class="code-object" style="color: #910091">Long</span> id) {
<span class="code-keyword" style="color: #000091">this</span>.id = id;
}
<span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getValue() {
<span class="code-keyword" style="color: #000091">return</span> value;
}
<span class="code-keyword" style="color: #000091">public</span> void setValue(<span class="code-object" style="color: #910091">String</span> value) {
<span class="code-keyword" style="color: #000091">this</span>.value = value;
}
}
</pre>
</div>
</div>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">TestRepository.java:</p>
<div class="code panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="codeContent panelContent" style="padding: 9px 12px">
<pre class="code-java" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">interface</span> TestRepository <span class="code-keyword" style="color: #000091">extends</span> JpaRepository<Test, <span class="code-object" style="color: #910091">Long</span>> {
}
</pre>
</div>
</div>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">TestApplication.java:</p>
<div class="code panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="codeContent panelContent" style="padding: 9px 12px">
<pre class="code-java" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
@SpringBootApplication
<span class="code-keyword" style="color: #000091">public</span> class TestApplication {
<span class="code-keyword" style="color: #000091">private</span> <span class="code-keyword" style="color: #000091">static</span> <span class="code-keyword" style="color: #000091">final</span> Logger LOGGER = LoggerFactory.getLogger(TestApplication.class);
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">static</span> void main(<span class="code-object" style="color: #910091">String</span>[] args) <span class="code-keyword" style="color: #000091">throws</span> Exception {
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(TestApplication.class, args);
TestRepository testRepository = configurableApplicationContext.getBean(TestRepository.class);
Test test = <span class="code-keyword" style="color: #000091">new</span> Test();
test.setValue(<span class="code-quote" style="color: #009100">"test1"</span>);
LOGGER.info(<span class="code-quote" style="color: #009100">"Save 1"</span>);
testRepository.save(test);
test.setValue(<span class="code-quote" style="color: #009100">"test2"</span>);
LOGGER.info(<span class="code-quote" style="color: #009100">"Save 2"</span>);
testRepository.save(test);
test.setValue(<span class="code-quote" style="color: #009100">"test3"</span>);
LOGGER.info(<span class="code-quote" style="color: #009100">"Save 3"</span>);
testRepository.save(test);
}
}
</pre>
</div>
</div>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">application.properties:</p>
<div class="preformatted panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="preformattedContent panelContent" style="padding: 9px 12px">
<pre style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal; white-space: pre; word-break: normal; word-wrap: break-word; word-break: break-word; white-space: pre-wrap">logging.level.org.hibernate.SQL=DEBUG
spring.jpa.database: H2
spring.jpa.properties.hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
</pre>
</div>
</div>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">pom.xml:</p>
<div class="code panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="codeContent panelContent" style="padding: 9px 12px">
<pre class="code-xml" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
<span class="code-tag" style="color: #000091"><parent></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.springframework.boot<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>spring-boot-starter-parent<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>1.2.5.RELEASE<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"></parent></span>
<span class="code-tag" style="color: #000091"><dependencies></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.springframework.boot<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>spring-boot-starter-data-jpa<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.hibernate<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>hibernate-ehcache<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>com.h2database<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>h2<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"></dependencies></span>
</pre>
</div>
</div>
<p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">Run log:</p>
<div class="preformatted panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="preformattedContent panelContent" style="padding: 9px 12px">
<pre style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal; white-space: pre; word-break: normal; word-wrap: break-word; word-break: break-word; white-space: pre-wrap">2015-07-07 10:53:33.865 INFO 3220 --- [ main] fr.test.TestApplication : Save 1
2015-07-07 10:53:33.950 DEBUG 3220 --- [ main] org.hibernate.SQL : insert into test (id, value) values (null, ?)
2015-07-07 10:53:34.002 INFO 3220 --- [ main] fr.test.TestApplication : Save 2
2015-07-07 10:53:34.029 DEBUG 3220 --- [ main] org.hibernate.SQL : select test0_.id as id1_0_0_, test0_.value as value2_0_0_ from test test0_ where test0_.id=?
2015-07-07 10:53:34.083 DEBUG 3220 --- [ main] org.hibernate.SQL : update test set value=? where id=?
2015-07-07 10:53:34.094 INFO 3220 --- [ main] fr.test.TestApplication : Save 3
2015-07-07 10:53:34.097 DEBUG 3220 --- [ main] org.hibernate.SQL : update test set value=? where id=?
</pre>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff">
<table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px">
<tr>
<td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0">
<table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tr>
<td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0px; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-9963#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-2b145654-6bdb-44e3-b402-cb64732e478d" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle" /> </a>
</td>
<td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://hibernate.atlassian.net/browse/HHH-9963#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<!-- there needs to be content in the cell for it to render in some clients -->
<tr>
<td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px">
<table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tr>
<td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px">
This message was sent by Atlassian JIRA <span id="footer-build-information">(v6.5-OD-08-001#65007-<span title="1fc98468dfd18a5f35861f5c2ab67219b6b6f2f6" data-commit-id="1fc98468dfd18a5f35861f5c2ab67219b6b6f2f6}">sha1:1fc9846</span>)</span>
</td>
<td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top">
<table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tr>
<td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-33279c38-5bad-41de-9346-2f9271c44c4d" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>