zoukankan      html  css  js  c++  java
  • Hibernate 的一些注解配置

      网上参考资料很多,但总是不符合自身习惯,遂记录下来。

    一对多的关系

      如class与student的关系

      class中

    @OneToMany(mappedBy = "class") 
    @LazyCollection(LazyCollectionOption.EXTRA)
    @Cascade(value = {CascadeType.ALL})
    private set<Student> students = new HashSet<Student>();

      @OnetoMany 关系申明,一个class对应多个学生,配置mappedby的为由多的一方(class)来维护关联关系,如班级不在了,学生肯定不在了。(如果没有配置谁来维护,系统会给我们创建一张中间表,可以验证)

      @LazyCollection(LazyCollectionOption.EXTRA)  --->  LazyCollection属性设置成EXTRA指定了当如果查询数据的个数时候,只会发出一条 count(*)的语句,提高性能

      @Cascade 为配置何时进行关联操作,具体的一些取值如下

    all: 所有情况下均进行关联操作,即save-update和delete。     
    none: 所有情况下均不进行关联操作。这是默认值。      
    save-update: 在执行save/update/saveOrUpdate时进行关联操作。      
    delete: 在执行delete 时进行关联操作。      
    all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点。
    比如在一个一对多的关系中,Student包含多个book,当在对象关系中删除一个book时,
    此book即成为孤儿节点。

      注:在声明多的一方时要及时初始化

      student中

     @ManyToOne(fetch = FetchType.LAZY)
    private Clazz clazz;

      @ManyToOne 声明多对一关系,fetch表示延迟加载,就是在查询class时,不会立即就把学生查找出来。

      注:1的一方不能初始化。

    其他多对多,一对一有机会用到更新

      

  • 相关阅读:
    [leetcode]算法题目
    JQuery功能查询页
    [C语言]一个很实用的服务端和客户端进行TCP通信的实例
    Siege——多线程编程最佳实例
    CodeIgniter框架中关于URL(index.php)的那些事
    web压测工具http_load原理分析
    【JAVA】文件各行打乱
    【JAVA】HashMap的原理及多线程下死循环的原因
    【JAVA】高并发优化细节点
    【Linux】日志分析工具grep sed sort
  • 原文地址:https://www.cnblogs.com/yanyouqiang/p/7125291.html
Copyright © 2011-2022 走看看