Giriş
Entity yüklenirken başka tablodan veri çekip yüklemek için kullanılabilir. Sınıf içindeki başka bir alana erişebilir. Açıklaması şöyle
Entity yüklenirken başka tablodan veri çekip yüklemek için kullanılabilir. Sınıf içindeki başka bir alana erişebilir. Açıklaması şöyle
Even if it is best to adhere to the JPA standard, in reality, many JPA providers offer additional features targeting a high-performance data access layer requirements.Örnek
For this purpose, Hibernate comes with the following non-JPA compliant features:
- extended identifier generators (hi/lo, pooled, pooled-lo)
- transparent prepared statement batching
- customizable CRUD (@SQLInsert, @SQLUpdate, @SQLDelete) statements
- static/dynamic entity/collection filters (e.g. @FilterDef, @Filter, @Where)
- mapping attributes to SQL fragments (e.g. @Formula)
- immutable entities (e.g. @Immutable)
- more flush modes (e.g. FlushMode.MANUAL, FlushMode.ALWAYS)
- querying the second-level cache by the natural key of a given entity
- entity-level cache concurrency strategies
- (e.g. Cache(usage = CacheConcurrencyStrategy.READ_WRITE))
- versioned bulk updates through HQL
- exclude fields from optimistic locking check (e.g. @OptimisticLock(excluded = true))
- versionless optimistic locking
- support for skipping (without waiting) pessimistic lock requests
- support for multitenancy
Şöyle yaparız.
@Formula("(select current_date())")
Date currentDate;
ÖrnekŞöyle yaparız
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(generator = "roles_id_seq", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "roles_id_seq", sequenceName = "roles_id_seq",
allocationSize = 1)
@Column(name = "id")
private Long id;
...
@Formula("(SELECT COUNT(*) FROM user_roles us WHERE us.id_role = id)")
private Integer countUsing;
}
ÖrnekŞöyle yaparız.
@MappedSuperclass
public abstract class BaseEntity {
@Id
protected String id;
@Formula("(select d from SOME_TABLE ST ST.some_id = id)")
private Long property4;
}