• JPA实现一对多(OneToMany)关联


    转自:https://blog.csdn.net/qq_32444825/article/details/77084580

    1.考试类

    @Entity

    public classExam implementsSerializable {

     

      private static final long serialVersionUID= 1L;

      

       @Id

       @GeneratedValue

      private Integer id;  

      private Integer paperId;

      private Integer userId; 

       @Temporal(TemporalType.TIMESTAMP)

      private Date startTime; 

       @Temporal(TemporalType.TIMESTAMP)

      private Date endTime;

      private Integer score;  

      private String remark;  

      private Integer status;

      

       @OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="exam")

      private List<ExamUserAns> listExamUserAns= newArrayList<ExamUserAns>();

       //get and set method here ……

    }

    Cascade 级联操作
    CascadeType. PERSIST 级联持久化 ( 保存 ) 操作
    CascadeType. MERGE 级联更新 ( 合并 ) 操作
    CascadeType. REFRESH 级联刷新操作,只会查询获取操作
    CascadeType. REMOVE 级联删除操作
    CascadeType. ALL 级联以上全部操作
    Fetch 抓取是否延迟加载,默认情况一的方为立即加载,多的一方为延迟加载
    mappedBy 关系维护
    mappedBy= "exam" 表示在ExamUserAns 类中的 exam 属性来维护关系,这个名称必须和ExamUserAns中的exam属性名称完全一致才行。

    另外需要注意,Exam类中的集合类型必须是List或者Set,不能设置为ArrayList,否则会报错

    Illegal attempt to map a non collection as…

    2.考试答案类

    @Entity

    public class ExamUserAns implements Serializable {

     

       private static final long serialVersionUID = 1L;

      

       @Id

       @GeneratedValue

       private Integer id;

      

       private Integer questionId;

      

       private String answer;

      

       private Integer score;

      

       private String remark;

      

       @ManyToOne(cascade=CascadeType.ALL)

       @JoinColumn(name="examId")

       private Exam exam;

    //get and set method here ……

    }

    3.数据持久化存储

    需要注意的是,在持久化存储时,我们只需要对Exam类进行merge或者persist即可,JPA会自动将其集合关联类进行持久化存储,而不需要我们对ExamUserAns再执行persist方法,但是我们需要设置examUserAns.setExam(exam)来维护这种关联。

  • 相关阅读:
    在vue项目中使用stylus来实现移动端的1px
    Promise对象和回调函数,解决异步数据传递问题
    axios在实际项目中的使用介绍
    关于React.PropTypes的废除,以及新版本下的react的验证方式
    javascript之日期对象
    js Date 日期格式化(转)
    jquery无缝隙连续滚动代码
    8款惊艳的HTML5粒子动画特效
    web前端设计师们常用的jQuery特效插件汇总
    js/jQuery实现类似百度搜索功能
  • 原文地址:https://www.cnblogs.com/sharpest/p/7726060.html
Copyright © 2020-2023  润新知