• 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的一方不能初始化。

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

      

  • 相关阅读:
    NS3 使用NS3工具PyViz
    ns-3 NetAnim遇到了一个问题
    NS-3 MyFirstScriptExample
    Ubuntu下Eclipse安装与编译ns-3遇见的各种问题
    Ubuntu 12.04 安装JDK
    近期学习的参考博客链接
    Win7上安装WMware虚拟机和Ubuntu操作系统
    C++课程小结 继承与派生
    C语言中生产随机数 rand()函数
    PTA第三次上机
  • 原文地址:https://www.cnblogs.com/yanyouqiang/p/7125291.html
Copyright © 2020-2023  润新知