hibernate注解和JPA
Hibernate Annotations:是使用注解代替XML映射对象关系的新方式
JPA:java Persistence API是EJB3.0规范中的一部分,专门描述如何处理持久化的规范
使用jpa注解可以屏蔽底层ORM框架
@Entity @Table(name="user") public class User implements java.io.Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer userId; @Column(name="username") private String username; private String password; private String role; @Temporal(value=TemporalType.TIMESTAMP) private java.util.Date created_at;
@Version
private int version;
基于注释的一对多双向关联
商品和商品种类是many对one的关系
Catalog.java
//关联一多的关系 @OneToMany(cascade=CascadeType.ALL,mappedBy="category") private List<Product> proList;
Product.java
@ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="cate_id") private Category category;
控制权交给有外键的那一边,所以判断外键至关重要
One对One关联关系
控制类(对应的是主表)
@OneToOne(mappedBy="这块写被控类的相关属性")
被控类(对应的是从表)
@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY) @JoinColumn(name="这块写表中的字段名称") private IdCard2 idCard;
多对多关系
学生和课程是多对多的
下面这个是在学生表里面配置的
@ManyToMany @JoinTable(
name="stu_course(中间表的名字)",joinColumns={@JoinColumn(name="stu_id(本尊派出去的列名)")}, inverseJoinColumns={@JoinColumn(name="course_id(对面的列名)")} )
private Set<Course> courseList=new HashSet<Course>()
下面这个是在课程表里面配置的
@ManyToMany private Set<Student2> stuList=new HashSet<Student2>();