從BJUG的maillist里發掘一個我以前的舊帖出來,嘿嘿
以前我和limo同志做過一個Hibernate技巧情色版..
1. Implement Moment-Interval and Moment-Interval-Details Using Iterable<T>
例子, 比如Order和OrderItem,典型的一對多



2

3

4

5



6




7

8

在J2SE5里面,



2

3

4

5



6

7

8

9



10




11

12

13

就可以直接來處理,



2

從某種程度上利用enhanced for的語法,來簡化語法。
trade-off: 不適合多個details 聚合,適合于簡單的moment-interval和momen
2. Annotate Description with @Embeddable, and the Thing it describe with @Entity
例子,Product和ProductDescription

2



3

4

5



6

7

8

9



10

11

在JSR220里,如果一個field是embeddable
這個基本沒發現trade-off
3. Avoid Database Primary Key in Domain Model Using @EmbeddableSuperclass
例子,在hibernate里,總是要給Domain加一個pr
雖然也可以通過繼承結構來避免,但是配置文件太多, JSR220里,通過自動處理的annotation

2



3

4

5

6

7



8

9

10

這個大家就一目了然了
4. Avoid Database Field in Domain Model Using @AttributeOverride
Annotation雖然簡化了開發,但是仍然有一個問題
name,這個簡直就是惡心,但是還是由辦法避免的。

2



3

4

5

6

7

8

9



10

11

12

同樣,通過繼承來隔離技術和Domain,然后在子類里作部署相
5. Model Place as Factory
其實這個是一個通則,以前好像也討論過。



2

3

4

基本上下午2個小時的成果就這么多,我是在嘗試用JSR220 API代替以前我和limo寫的那個珍珠商城訂單部分得到的一些
咱們搞JAVA不用把blog打扮的跟hacker窩一樣吧