1. 程式人生 > >基於註解的 Hibernate 配置

基於註解的 Hibernate 配置

Hibernate 註解和 JPA

在 hibernate.cfg.xml 中 把

<mapping resource=
改為
<mapping class="xxxx.XX"

JPA 中註解的應用

基於註解的的物件關係對映

@Entity
@Table
@Id @GenerateValue(strategy=GenerationType.AUTO)
@Temporal(日期相關)
@Temploral(TemporalType.TIMESTMP)
@Basic(普通,不新增也會預設新增為基本屬性)
@Basic(fetch=FetchType.EAGER,optional=true)
@Column
@Version(樂觀鎖)
@Transient(不做關係對映)

大物件的操作 Clob Blob @Lob

@Lob
private Clob content;//mysql 中longtings   oracle Clob 

@Lob
private Blob images;//mysql 中longBlob  oracle Lob

@Version
private int version;

關聯對映
一對多 @OneToMany
一對一 @OneToOne
多對多 @ManyToMany

@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name=”外來鍵id”)

@ManyToMany
@JoinTable(name=”third_table”,joinColnums={@JoinColumn(name=”f_id”)},inverseJoinColumn={@JoinColumn(name=”s_id”)})

對映命名查詢

(寫在實體類中)
@NamedQueries


@NamedQueries({@NameQuery(name=”Account.findById”,query=”from Account where id=:id”)})

@NamedQuery

Query query=session.getNameQuery(“Account.findById”);
query.setInteger(“id”,1);
query.list();

Hibernate 二級快取的註解

通過註解配置二級快取

1、匯入快取jar 和配置檔案(echache.xml)
2、hibernate.cfg.xml啟動快取
3、實體啟動快取@Cache(usage=CacheConcurrencyStrategy.READ_WRITE )設定快取策略

有5種可選的快取方案:
1,CacheConcurrencyStrategy.NONE

  不適用,預設

  2.  CacheConcurrencyStrategy.NONSTRICT_READ_WRITE

  更新不頻繁幾個小時或更長

  3,CacheConcurrencyStrategy.READ_ONLY

  對於不發生改變的資料使用 [size=large][/size]

  4,CacheConcurrencyStrategy.READ_WRITE

  基於時間戳判定機制,,對於資料同步要求嚴格的情況,使用頻繁

  5,CacheConcurrencyStrategy.TRANSACTIONAL

相關推薦

no