Hibernate中的JPA注解有哪些?如何使用?代码举例讲解

Hibernate支持JPA(Java Persistence API)规范,可以通过JPA注解配置映射关系,替代XML映射文件。主要的JPA注解有:

  1. @Entity:标识一个类为实体类。
@Entity
public class Customer { ... }
  1. @Table:指定实体类对应数据库表名。若省略,默认表名为类名。
@Entity  
@Table(name = "t_customer")
public class Customer { ... }
  1. @Id:指定主键字段。
@Id 
private int id;
  1. @Column:指定字段映射到数据库的列。可指定名称.长度.是否唯一等。
@Column(name = "name", length = 30, unique = true)
private String name;
  1. @GeneratedValue:指定主键生成策略。如AUTO.IDENTITY.SEQUENCE等。
@Id  
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
  1. @Temporal:指定日期字段类型。如TIMESTAMP.DATE或TIME。
@Temporal(TemporalType.DATE)
private Date createdTime;
  1. @OneToOne.@OneToMany.@ManyToOne:指定一对一.一对多和多对一关联关系。
@OneToMany(mappedBy = "customer")
private Set<Order> orders = new HashSet<>();  
  1. @Cascade:配置级联操作规则。如删除客户时删除订单。
@OneToMany(mappedBy = "customer", cascade=CascadeType.REMOVE)
private Set<Order> orders = new HashSet<>();
  1. 还有@MappedSuperclass.@Inheritance等注解用于映射继承关系。

使用JPA注解配置映射关系可以简化Hibernate的开发,无需编写XML映射文件。