Annotation Interface Synchronize
If Hibernate is not aware that a certain table holds state mapped by an entity class or collection, then modifications might not beautomatically synchronized with the database before a query is executed against that table, and the query might return stale data.
Ordinarily, Hibernate knows the tables containing the state of an entity or collection. This annotation might be necessary if:
- an entity or collection maps a databaseview,
- an entity or collection is persisted using handwritten SQL, that is, using
@SQLSelectand friends, or - an entity is mapped using
@Subselect.
By default, the table names specified by this annotation are interpreted aslogical names, and are processed byPhysicalNamingStrategy.toPhysicalTableName(org.hibernate.boot.model.naming.Identifier, org.hibernate.engine.jdbc.env.spi.JdbcEnvironment). But iflogical=false, the table names will be treated as physical names, and will not be processed by the naming strategy.
Required Element Summary
Required ElementsOptional Element Summary
Optional Elements
Element Details
value
String[] valueNames of tables that hold state mapped by the annotated entity. Updates to these tables must be flushed to the database before execution of any query which refers to the annotated entity.
logical
boolean logicalSpecifies whether the table names given byvalue()should be interpreted as logical or physical names.- Returns:
trueif they are logical names
- Default:
- true