论坛首页 Java企业应用论坛

Hibernate和EJB3.0的属性注解必须注意的

浏览 3054 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-19  

   枚举类型:   

  Hibernate和EJB3.0支持基本类型,但是hibernate 注解还支持内置的枚举类型映射到一个顺序列或一个字符串类型的列。默认是保存枚举类型的序列值,但是你可以通过@Enumerated注解来进行调整。

  保存数据为字符串类型

  @Enumerated(value=EnumType.STRING)
 private DateStatus status;

 

 保存数据库为数字类型

 @Enumerated(value=EnumType.ORDINAL)
 private DateType dateType;

 

 时间类型:

  在和姓java API中 并没有定义时间精度,因此处理时间数据时,你需要定义将其存储在数据库中所预期的精度,在数据库中表示时间的数据有DATE,TIME和TIMESTAMP 三种精度(单纯的日期,时间或者两种兼容),可以使用@Temporal注解来调整精度。

  默认为TIMESTAMP 类型,常用的类型为Date

 /**
  * 起始时间
  */
 @Temporal(TemporalType.DATE)
 private Date startDate;

 

  大数据类型:

 @Lob注解表示属性将被持久化为Blob或者Clob,具体取决于属性的类型,java.sql.Clob,char[] ,Character[]和String 这些类型都为Clob类型。而java.sql.Blob,byte[],Byte[]和serializable类型被持久化为Blob类型。

 

 

  如果某个属性实现了java.io.Serializable同时不是基本数据类型。并且没有在该属性上使用@Lob注解,那么Hibernate将使用自带的serializable类型。

 

备注:项目中由于某些同时使用对象,同时没有使用java.io.Serializable和注解,数据中产生相应的@Lob这样的大数据类型。

   发表时间:2010-01-22  
@Enumerated(EnumType.Timestamp)
@Temporal
@Lob

都是经常用到的注解
0 请登录后投票
   发表时间:2010-01-22  
懒萝卜 写道
@Enumerated(EnumType.Timestamp)
@Temporal
@Lob

都是经常用到的注解

上面红色部分错误了吧,哈哈哦
Lob 好像不是很常用吧,特殊的
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics