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>();

 

posted @ 2017-03-23 14:28  我们不该这样的  阅读(166)  评论(0编辑  收藏  举报