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