hibernate annotation

@Entity

@Table(name = "admin", catalog = "elearning")

public class Admin implements java.io.Serializable {

}

 

javax.persistence.Entity 指定类是一个实体。此注释应用于实体类。

@Entity   POJO@Entity进行实体注释

javax.persistence.Table此注释为注释的实体指定主表格。使用 SecondaryTable SecondaryTables 注释可以指定其他表格。

@Table  是类的一级注释,通过它可用为实体指定表(Table),目录(catalog),和结构(schema)的名字,如果没有@Table,那么系统自动使用默认值:实体的短类名(不带包名)

 

注:catalog相当于是一个编目,就是把远程服务器上的数据库实例映射到本地,从而建立本地客户端与远陈服务器端的链接,所以一个编目节点就映射一个远程服务器上数据库的实例,这个节点包含了对该数据库实例的元数据(包括基本表,索引,用户等),每一个数据库实例的catalog名字就是该数据库映射到本地客户端时保存的别名,对sqlserver来说就是数据库名

 

@Column(name = "user_name", nullable = false, length = 50)

 public String getUserName() {

      return this.userName;

}

实体Bean中的所有非static、非transient的属性都可以被持久化。同时使用@Transient对属性进行注解同样不不会被持久化

javax.persistence.Column用于指定持久属性或字段的映射列。如果没有指定 Column 注释,则应用默认值。

@Column:表示持久化属性所映射表中的字段,如果属性名与表中的字段名相同,则可以省略@Column注解。

POJO用有属性不需要映射的时候一定要用@Transient修饰 

 

 

 @Id
 @Column(name = "user_id", unique = true, nullable = false)
 public Integer getUserId() {
  return this.userId;
 }

javax.persistence.Id指定实体的主键属性或字段。

@Id   使用@Id注解可以将实体Bean中的某个属性定为为标识符(identifier)

 

主键生成策略

 

     @Id

     @GeneratedValue(strategy=GenerationType.SEQUENCE)

     public Long getId() { return id; }

@GeneratedValue(strategy=策略)

GenerationType.AUTO           主键由程序控制。如果不指定主键生成策略,默认为AUTO

GenerationType.TABLE          使用一个特定的数据库表格来保存主键。

GenerationType.SEQUENCE  根据底层数据库的序列来生成主键,条件是数据库支持序列。Oralce

GenerationType.IDENTITY     主键由数据库自动生成(主要是自动增长型)MySQL

 

自定义主键生成策略

org.hibernate.annotations.GenericGeneracor  hibernateJPA的基础上进行了扩展,可以用一下方式引入hibernate独有的主键生成策略

     @Id

     @GeneratedValue(generator = "system-uuid")[该属性名为下面注释中name的值

     @GenericGenerator(name = " system-uuid ", strategy = "uuid")

     public Long getId() { return id; }

你可能感兴趣的:(数据结构,bean,Hibernate,应用服务器,jpa)