hibernateJTA标记.docxVIP

  • 3
  • 0
  • 约1.1万字
  • 约 10页
  • 2018-01-02 发布于河南
  • 举报
hibernateJTA标记

/cnbxj/blog/item/810acd01ca716b0d1c95837c.htmlHibernate JPA标记学习1.@Entity ???? 通过注释@Entity或者(@Entity())表示被标示的类对应数据库中的一张表。??? } @Entity public class TravelProfile { ... } 上面的例子告诉O/R映射引擎,类TravelProfile是可以持久化的,同时它对应数据库中的一张表。但是它没有指明对应哪个数据库中的哪张表。2.元数据映射标记2.1 @Table @Table()标记为实体初始化一张表,定义如下:@Target({TYPE}) @Retention(RUNTIME) public @interface Table { String name() default ; String catalog() default ; String schema() default ; UniqueConstraint[] uniqueConstraints() default {}; } Name:指明表的名字。(可选)Catalog:表示表的catalog.(可选)Schema:表示表的schema.(可选)uniqueConstraints:制定表的唯一约束。(可选)因为所有的属性都是可选的,也就是说@Table可以在进行映射的时候可以不标明。当不标明的情况下表的名字就是实体的类名。表属于的schema就是所属实体单元集的schema(就是当前连接数据库的用户)。下面给出的例子中,指明表为CUST,所属的schema为RECORDS:@Entity @Table(name=CUST, schema=RECORDS) public class Customer { ... } 2.2 @UniqueConstraint标记@UniqueConstraint用来指定表字段的唯一约束,定义如下:@Target({}) @Retention(RUNTIME) public @interface UniqueConstraint { String[] columnNames(); } columnNames:制定唯一约束的字段。@Entity @Table( name=EMPLOYEE, uniqueConstraints= @UniqueConstraint(columnNames={EMP_ID, EMP_NAME}) ) public class Employee { ... } 上面的例子,唯一约束标记指定字段EMP_ID和字段EMP_NAME在表中EMPLOYEE中是唯一的。2.3@Column标记@Column标记把实体的属性或域映射到表的字段,当没有在实体的属性或域中使用该标记那数据库的对应表的字段名就是实体的属性名或域名。其定义为:@Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Column { String name() default ; boolean unique() default false; boolean nullable() default true; boolean insertable() default true; boolean updatable() default true; String columnDefinition() default ; String table() default ; int length() default 255; int precision() default 0; // decimal precision int scale() default 0; // decimal scale } ?????? Name:指定字段名。?????? Unique:指明该字段是否唯一,默认为false。?????? Nullable:指明是否可以为空,默认是true。????? Insertable:指明该字段在产生SQL INSERT语句中是否产生该字段。Updatable:指明该字段在产生SQL INSERT语句中是否产生该字段。columnDefinition:指定产生表的时候,使用它指定该字段一些属性。Table:当一个实体对应多个表的时候,指定该字段属于哪个表。Length:制定该字段的长度(只有在字段为字符类型的才有用),默认是255。Precision: 指明字段的精度(在字段为decimal类型的时候使用),默认是0 Scale:为字段为number型指定标量,默认为0。下面给出例子:@Column(name=DESC,

文档评论(0)

1亿VIP精品文档

相关文档