`
fanggangJava
  • 浏览: 24686 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate 3.3主要的新特性包括2

    博客分类:
  • java
阅读更多

<!----><!----><!----> <!---->

</ prop >
23                   < prop  key ="hibernate.cache.use_query_cache"> ${hibernate.cache.use_query_cache} </ prop >
24                   < prop  key ="hibernate.cache.provider_class"> ${hibernate.cache.provider_class} </ prop >
25               </ props >
26           </ property >
27           < property
28                name ="lobHandler"
29               ref ="DefaultLobHandler"   />
30       </ bean >

2 id 的配置
非常简单,在 id getter 上面加个 “@Id” 就可以了。此时采用的 id 策略是 javax.persistence.GenerationType.AUTO ,也可以再加上 “@GeneratedValue(generator =GenerationType.IDENTITY|GenerationType.SEQUENCE|GenerationType.TABLE)” 换成其它策略。
我的应用采用的是 hibernate uuid 策略,就不得不在这儿使用 hibernate 的扩展了

  @Id
  @Column(length = 32)
  @GeneratedValue(generator = "system-uuid")
  @GenericGenerator(name = "system-uuid", strategy = "uuid")


3 、级联策略
ejb3-persistence.jar 中只定义了 ALL MERGE PERSIST REFRESH REMOVE ,比较恶心的就是,删除对象的时候,并不会级联删除关联对象,而是用 update xx set parent_id=null where parent_id=? 这类语句把关系干掉了事。不得已,在这儿用了 hibernate DELETE_ORPHAN

  @OneToMany(targetEntity = Attachment. class )
  @Cascade(value = {org.hibernate.annotations.CascadeType.DELETE_ORPHAN,
      org.hibernate.annotations.CascadeType.ALL})
  @JoinColumn(name = "info_id")

4 CACHE
ejb3-persistence.jar 里面没有找到 cache 的配置,继续请出 hibernate 来干活

import  org.hibernate.annotations.Cache;
import  org.hibernate.annotations.CacheConcurrencyStrategy;

@Entity
@Table(name = "T_INFO")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

5 、自定义字段类型
我的 POJO 中有一个 private String content; 的属性,按 ejb3 配成 @Lob 后,被处理成了 text 类型, text 64k 的存储容量还是比较可怜了。

  @Lob
  @Column(columnDefinition = "LongText")

 

 

 1 <!----><!----> package  com.jpa.po;
 2 <!----><!---->
 3 <!----><!----> <!----> import  java.io.Serializable;
 4 <!----><!---->
 5 <!----> import  javax.persistence.Column;
 6 <!----><!----> <!----> import  javax.persistence.Entity;
 7   <!----> import  javax.persistence.Id;
 8 <!----><!----> <!----> import  javax.persistence.Table;
 9
10   <!----> /**
11 <!----><!----> <!---->  *  @author  javaroom
12  
13 <!----><!----> <!---->  */
14 <!----><!----> <!----> @Entity
15   <!----> @Table(name = "USER", schema = "STRUTS")
16 <!----><!----> public   class  User  implements  Serializable {
17 <!----><!---->
18 <!----><!----> <!---->      private   static   final   long  serialVersionUID = -6204671466507203185L;
19 <!----><!----> <!---->      private  String name;

           略......
<!----><!----><!---->

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics