Top Inners Fields Constructors Methods
org.hibernate.jpa.internal

public Class JpaComplianceImpl

extends Object
implements JpaCompliance
Class Inheritance
All Implemented Interfaces
org.hibernate.jpa.spi.JpaCompliance
Imports
org.hibernate.jpa.spi.JpaCompliance

Author
Andrea Boriero

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
private final boolean
private final boolean
private final boolean
private final boolean
private final boolean
private final boolean
private final boolean
private final boolean
private final boolean

Constructor Summary

AccessConstructor and Description
public
JpaComplianceImpl(boolean listCompliance, boolean orderByMappingCompliance, boolean proxyCompliance, boolean globalGeneratorNameScopeCompliance, boolean queryCompliance, boolean transactionCompliance, boolean closedCompliance, boolean cachingCompliance, boolean loadByIdCompliance)

Method Summary

Modifier and TypeMethod and Description
public boolean
public boolean
isJpaCacheComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaCacheComplianceEnabled.

Should Hibernate comply with all aspects of caching as defined by JPA?
public boolean
isJpaClosedComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaClosedComplianceEnabled.

JPA defines specific exceptions on specific methods when called on jakarta.persistence.EntityManager and jakarta.persistence.EntityManagerFactory when those objects have been closed.
public boolean
isJpaListComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaListComplianceEnabled.

Controls how Hibernate interprets a mapped java.util.List without no order column specified.
public boolean
public boolean
isJpaProxyComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaProxyComplianceEnabled.

JPA spec says that an jakarta.persistence.EntityNotFoundException should be thrown when accessing an entity proxy which does not have an associated table row in the database.
public boolean
isJpaQueryComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaQueryComplianceEnabled.

Controls whether Hibernate's handling of JPA's jakarta.persistence.Query (JPQL, Criteria and native-query) should strictly follow the JPA spec.
public boolean
isJpaTransactionComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaTransactionComplianceEnabled.

Indicates that Hibernate's Transaction should behave as defined by the specification for JPA's jakarta.persistence.EntityTransaction since it extends it.
public boolean
isLoadByIdComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isLoadByIdComplianceEnabled.

JPA says that the id passed to jakarta.persistence.EntityManager#getReference and jakarta.persistence.EntityManager#find should be exactly the expected type, allowing no type coercion.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

cachingComplianceback to summary
private final boolean cachingCompliance
closedComplianceback to summary
private final boolean closedCompliance
globalGeneratorNameScopeComplianceback to summary
private final boolean globalGeneratorNameScopeCompliance
listComplianceback to summary
private final boolean listCompliance
loadByIdComplianceback to summary
private final boolean loadByIdCompliance
orderByMappingComplianceback to summary
private final boolean orderByMappingCompliance
proxyComplianceback to summary
private final boolean proxyCompliance
queryComplianceback to summary
private final boolean queryCompliance
transactionComplianceback to summary
private final boolean transactionCompliance

Constructor Detail

JpaComplianceImplback to summary
public JpaComplianceImpl(boolean listCompliance, boolean orderByMappingCompliance, boolean proxyCompliance, boolean globalGeneratorNameScopeCompliance, boolean queryCompliance, boolean transactionCompliance, boolean closedCompliance, boolean cachingCompliance, boolean loadByIdCompliance)

Method Detail

isGlobalGeneratorScopeEnabledback to summary
public boolean isGlobalGeneratorScopeEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isGlobalGeneratorScopeEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isGlobalGeneratorScopeEnabled.

Should the scope of jakarta.persistence.TableGenerator#name() and jakarta.persistence.SequenceGenerator#name() be considered globally or locally defined?

Returns:boolean

true if the generator name scope is considered global

Annotations
@Override
isJpaCacheComplianceEnabledback to summary
public boolean isJpaCacheComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaCacheComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaCacheComplianceEnabled.

Should Hibernate comply with all aspects of caching as defined by JPA? Or can it deviate to perform things it believes will be "better"?

Returns:boolean

true indicates to behave in the spec-defined way

Annotations
@Override
isJpaClosedComplianceEnabledback to summary
public boolean isJpaClosedComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaClosedComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaClosedComplianceEnabled.

JPA defines specific exceptions on specific methods when called on jakarta.persistence.EntityManager and jakarta.persistence.EntityManagerFactory when those objects have been closed. This setting controls whether the spec defined behavior or Hibernate's behavior will be used.

If enabled Hibernate will operate in the JPA specified way throwing exceptions when the spec says it should with regard to close checking

Returns:boolean

true indicates to behave in the spec-defined way

Annotations
@Override
isJpaListComplianceEnabledback to summary
public boolean isJpaListComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaListComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaListComplianceEnabled.

Controls how Hibernate interprets a mapped java.util.List without no order column specified. Historically Hibernate treats this as a "bag", which is a concept JPA does not have.

  • If enabled, Hibernate will recognize this case as a list.
  • Otherwise, if disabled, Hibernate will treat it as a "bag".
Returns:boolean

true indicates to behave in the spec-defined way, interpreting the mapping as a "list", rather than a "bag"

Annotations
@Override
isJpaOrderByMappingComplianceEnabledback to summary
public boolean isJpaOrderByMappingComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaOrderByMappingComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaOrderByMappingComplianceEnabled.

Should we strictly handle jakarta.persistence.OrderBy expressions?

JPA says the order-items can only be attribute references whereas Hibernate supports a wide range of items. With this enabled, Hibernate will throw a compliance error when a non-attribute-reference is used.

Annotations
@Override
isJpaProxyComplianceEnabledback to summary
public boolean isJpaProxyComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaProxyComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaProxyComplianceEnabled.

JPA spec says that an jakarta.persistence.EntityNotFoundException should be thrown when accessing an entity proxy which does not have an associated table row in the database.

Traditionally, Hibernate does not initialize an entity Proxy when accessing its identifier since we already know the identifier value, hence we can save a database round trip.

If enabled Hibernate will initialize the entity proxy even when accessing its identifier.

Returns:boolean

true indicates to behave in the spec-defined way

Annotations
@Override
isJpaQueryComplianceEnabledback to summary
public boolean isJpaQueryComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaQueryComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaQueryComplianceEnabled.

Controls whether Hibernate's handling of JPA's jakarta.persistence.Query (JPQL, Criteria and native-query) should strictly follow the JPA spec. This includes parsing and translating a query as JPQL instead of HQL, as well as whether calls to the jakarta.persistence.Query methods always throw the exceptions defined by the specification.

Deviations result in an exception, if enabled.

Returns:boolean

true indicates to behave in the spec-defined way

Annotations
@Override
isJpaTransactionComplianceEnabledback to summary
public boolean isJpaTransactionComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isJpaTransactionComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isJpaTransactionComplianceEnabled.

Indicates that Hibernate's Transaction should behave as defined by the specification for JPA's jakarta.persistence.EntityTransaction since it extends it.

Returns:boolean

true indicates to behave in the spec-defined way

Annotations
@Override
isLoadByIdComplianceEnabledback to summary
public boolean isLoadByIdComplianceEnabled()

Implements org.hibernate.jpa.spi.JpaCompliance.isLoadByIdComplianceEnabled.

Doc from org.hibernate.jpa.spi.JpaCompliance.isLoadByIdComplianceEnabled.

JPA says that the id passed to jakarta.persistence.EntityManager#getReference and jakarta.persistence.EntityManager#find should be exactly the expected type, allowing no type coercion.

Historically, Hibernate behaved the same way. Since 6.0 however, Hibernate has the ability to coerce the passed type to the expected type. For example, an Integer may be widened to Long. Coercion is performed by calling org.hibernate.type.descriptor.java.JavaType#coerce.

This setting controls whether such coercion should be allowed.

Annotations
@Override
org.hibernate.jpa.internal back to summary

public Class JpaComplianceImpl.JpaComplianceBuilder

extends Object
Class Inheritance
  • java.lang.Object
  • org.hibernate.jpa.internal.JpaComplianceImpl.JpaComplianceBuilder

Field Summary

Modifier and TypeField and Description
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
pack-priv JpaCompliance
public JpaComplianceImpl.JpaComplianceBuilder
setCachingCompliance(boolean cachingCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setClosedCompliance(boolean closedCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setGlobalGeneratorNameCompliance(boolean globalGeneratorNameCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setListCompliance(boolean listCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setLoadByIdCompliance(boolean loadByIdCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setOrderByMappingCompliance(boolean orderByMappingCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setProxyCompliance(boolean proxyCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setQueryCompliance(boolean queryCompliance)

public JpaComplianceImpl.JpaComplianceBuilder
setTransactionCompliance(boolean transactionCompliance)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

cachingComplianceback to summary
private boolean cachingCompliance
closedComplianceback to summary
private boolean closedCompliance
globalGeneratorNameScopeComplianceback to summary
private boolean globalGeneratorNameScopeCompliance
listComplianceback to summary
private boolean listCompliance
loadByIdComplianceback to summary
private boolean loadByIdCompliance
orderByMappingComplianceback to summary
private boolean orderByMappingCompliance
proxyComplianceback to summary
private boolean proxyCompliance
queryComplianceback to summary
private boolean queryCompliance
transactionComplianceback to summary
private boolean transactionCompliance

Constructor Detail

JpaComplianceBuilderback to summary
public JpaComplianceBuilder()

Method Detail

createJpaComplianceback to summary
pack-priv JpaCompliance createJpaCompliance()
setCachingComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setCachingCompliance(boolean cachingCompliance)
setClosedComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setClosedCompliance(boolean closedCompliance)
setGlobalGeneratorNameComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setGlobalGeneratorNameCompliance(boolean globalGeneratorNameCompliance)
setListComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setListCompliance(boolean listCompliance)
setLoadByIdComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setLoadByIdCompliance(boolean loadByIdCompliance)
setOrderByMappingComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setOrderByMappingCompliance(boolean orderByMappingCompliance)
setProxyComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setProxyCompliance(boolean proxyCompliance)
setQueryComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setQueryCompliance(boolean queryCompliance)
setTransactionComplianceback to summary
public JpaComplianceImpl.JpaComplianceBuilder setTransactionCompliance(boolean transactionCompliance)