2007年6月10日 星期日

Hibnerate Annotation心得筆記

1. 原來JPA的Annotation的定義:@OneToOne跟@ManyToOne都是預設是Fetch.Eager
2. Hibernate Annotation可以用@LazyToOne來設定@OneToOne或是@ManyToOne的Lazy fetch的方式(通常都是用LazyToOneOption.PROXY吧)。但是,對於@OneToOne來說,怎麼設定似乎都是無用的,Hibernate的實做,似乎還是會進行non-lazy fetch.
3. 若是@ManyToOne設定為fetch=FetchMode.Lazy的話,則該relation必須在使用Hibernate.initialize()之後,或是在查詢時加上fetch的語法才能在session關閉後取得.
4. 目前用Hibernate annotation extension中的@Index想幫一些relation加上db index,但是似乎不行。

結論,JPA的定義與原本的Hibernate作法似乎是有不少差異,而且就功能上來看,JPA的annotation比起Hibernate也就為不足

沒有留言: