资源描述:
《hibernate注解大全》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Hibernate注释大全Documentfileandexample:Hibernate,JBossetc. 一、实体Bean每个持久化POJO类都是一个实体Bean,通过在类的定义中使用@Entity注解来进行声明。声明实体Bean@EntitypublicclassFlightimplementsSerializable{ Longid; @Id publicLonggetId(){returnid;} publicvoidsetId(Longid){this.id=id;}}@Entity注解将一个类声明为实体Bean,@Id注解声明了该
2、实体Bean的标识属性。Hibernate可以对类的属性或者方法进行注解。属性对应field类别,方法的getXxx()对应property类别。定义表通过@Table为实体Bean指定对应数据库表,目录和schema的名字。@Entity@Table(name="tbl_sky")publicclassSkyimplementsSerializable{...@Table注解包含一个schema和一个catelog属性,使用@UniqueConstraints可以定义表的唯一约束。@Table(name="tbl_sky", uniqueCon
3、straints={@UniqueConstraint(columnNames={"month","day"})})上述代码在 "month"和"day"两个field上加上uniqueconstrainst.@Version注解用于支持乐观锁版本控制。@EntitypublicclassFlightimplementsSerializable{ ... @Version @Column(name="OPTLOCK") publicIntegergetVersion(){...}}version属性映射到"OPTLOCK"列,entity
4、manager使用这个字段来检测冲突。一般可以用数字或者timestamp类型来支持version.实体Bean中所有非static非transient属性都可以被持久化,除非用@Transient注解。默认情况下,所有属性都用@Basic注解。publictransientintcounter;//transientpropertyprivateStringfirstname;//persistentproperty@TransientStringgetLengthInMeter(){...}//transientpropertyStringg
5、etName(){...}//persistentproperty@BasicintgetLength(){...}//persistentproperty@Basic(fetch=FetchType.LAZY)StringgetDetailedComment(){...}//persistentproperty@Temporal(TemporalType.TIME)java.util.DategetDepartureTime(){...}//persistentproperty@Enumerated(EnumType.STRING)Starre
6、dgetNote(){...}//enumpersistedasStringindatabase上述代码中counter,lengthInMeter属性将忽略不被持久化,而firstname,name,length被定义为可持久化和可获取的。@TemporalType.(DATE,TIME,TIMESTAMP)分别Mapjava.sql.(Date,Time,Timestamp).@Lob注解属性将被持久化为Blog或Clob类型。具体的java.sql.Clob,Character[],char[] 和java.lang.String 将被持久
7、化为Clob类型.java.sql.Blob,Byte[],byte[] 和serializabletype 将被持久化为Blob类型。@LobpublicStringgetFullText(){ returnfullText; //clobtype}@Lobpublicbyte[]getFullCode(){ returnfullCode; //blogtype}@Column注解将属性映射到列。@EntitypublicclassFlightimplementsSerializable{ ... @Column(updatable=fa
8、lse,name="flight_name",nullable=false,length=50) publicStringgetNam