Browse Source

Polishing

6.2.x
Juergen Hoeller 3 weeks ago
parent
commit
b426ef2d1b
  1. 4
      spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java
  2. 3
      spring-orm/src/main/java/org/springframework/orm/jpa/JpaDialect.java
  3. 8
      spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java

4
spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java

@ -69,6 +69,9 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { @@ -69,6 +69,9 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
return null;
}
/**
* This implementation simply returns {@code null} for no transaction data.
*/
@Override
@Nullable
public Object prepareTransaction(EntityManager entityManager, boolean readOnly, @Nullable String name)
@ -81,6 +84,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { @@ -81,6 +84,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
* This implementation does nothing, since the default {@code beginTransaction}
* implementation does not require any cleanup.
* @see #beginTransaction
* @see #prepareTransaction
*/
@Override
public void cleanupTransaction(@Nullable Object transactionData) {

3
spring-orm/src/main/java/org/springframework/orm/jpa/JpaDialect.java

@ -100,7 +100,7 @@ public interface JpaDialect extends PersistenceExceptionTranslator { @@ -100,7 +100,7 @@ public interface JpaDialect extends PersistenceExceptionTranslator {
* @param readOnly whether the transaction is supposed to be read-only
* @param name the name of the transaction (if any)
* @return an arbitrary object that holds transaction data, if any
* (to be passed into cleanupTransaction)
* (to be passed into {@link #cleanupTransaction})
* @throws jakarta.persistence.PersistenceException if thrown by JPA methods
* @see #cleanupTransaction
*/
@ -117,6 +117,7 @@ public interface JpaDialect extends PersistenceExceptionTranslator { @@ -117,6 +117,7 @@ public interface JpaDialect extends PersistenceExceptionTranslator {
* @param transactionData arbitrary object that holds transaction data, if any
* (as returned by beginTransaction or prepareTransaction)
* @see #beginTransaction
* @see #prepareTransaction
* @see org.springframework.jdbc.datasource.DataSourceUtils#resetConnectionAfterTransaction
*/
void cleanupTransaction(@Nullable Object transactionData);

8
spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java vendored

@ -181,16 +181,18 @@ public class EclipseLinkJpaDialect extends DefaultJpaDialect { @@ -181,16 +181,18 @@ public class EclipseLinkJpaDialect extends DefaultJpaDialect {
@Override
public Connection getConnection() {
if (this.connection == null) {
Connection con = this.connection;
if (con == null) {
transactionIsolationLock.lock();
try {
this.connection = this.entityManager.unwrap(Connection.class);
con = this.entityManager.unwrap(Connection.class);
}
finally {
transactionIsolationLock.unlock();
}
this.connection = con;
}
return this.connection;
return con;
}
}

Loading…
Cancel
Save