zoukankan      html  css  js  c++  java
  • hibernate笔记

    懒加载分属性懒加载(如load方法),关联懒加载
    Hibernate.initialize() and Hibernate.isInitialized() 强制初始化集合与代理对象

    hibernate查询方式
    sql Query(SQLQuery) = session.createSQLQuery(sql) (不会自动关联)
    hql Query = session.createQuery(hql) (自动关联)
    Criteria Criteria = session.createCriteria(clazz) (自动关联)

    关联时,如果要关联的对象不存在,会报错
    可在关联的get方法下设置
    @NotFound(action = NotFoundAction.IGNORE)


    在hibernate上
    @oneToOne, @ManyToOne, @OneToMany 这些注解上可以设置
    fetch = FetchType.LAZY
    但是如果在这些注解上在加上
    @NotFound(action = NotFoundAction.IGNORE)
    则懒加载失效, 会变成立即加载. (在程序中会带来很可怕的效应). 产生n+1查询.
    所以要使用fetch = FetchType.LAZY时, 要把 @NotFound给去掉

    @Formula与sql映射实体冲突,sql语句映射实体类时会报空指针异常


    立即关联查询会有重复记录
    criteria重复记录
    criteria.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE)

    懒加载
    会有1+n条sql语句查询

    无状态session,对数据增删改都会立即执行,不存在对session执行flush的问题。

    打开session不会立马连接数据库

    @DynamicUpdate动态更新,用于同一个seesion中。

    merge方法
    调用merge方法的时候,hibernate会检查在持久化上下文中的持久化实例是否和脱管实例具有相同的标识符。如果有,把脱管实例的状态负责到持久化实例中;如果没有,就从数据库中加载,然后把脱管实例和获取的对象状态合并;如果数据库中没有查到结果,就创建新的持久化实例,把脱管实例的状态复制到新实例,插入到数据库中,并通过merge()操作返回。

    not-null property references a null or transient value 错误原因:model中nullable设置与数据库表不一致

    自关联映射,双向关联映射,实体转json会报循环错误 ,懒加载,springmvc自转json报错

    session中不能有主键id相同的对象
    hibernate报错a different object with the same identifier value was already associated with the session

    object references an unsaved transient instance - save the transient instance before flushing  对象主键要有值

    通过id查询如果id为null会报如下错误:

    id to load is required for loading

    关联查询:外键为null不会报错,不为null且关联表中没相应的id则会报错

     

  • 相关阅读:
    Codeforces 834D The Bakery
    hdu 1394 Minimum Inversion Number
    Codeforces 837E Vasya's Function
    Codeforces 837D Round Subset
    Codeforces 825E Minimal Labels
    Codeforces 437D The Child and Zoo
    Codeforces 822D My pretty girl Noora
    Codeforces 799D Field expansion
    Codeforces 438D The Child and Sequence
    Codeforces Round #427 (Div. 2) Problem D Palindromic characteristics (Codeforces 835D)
  • 原文地址:https://www.cnblogs.com/cghhnty/p/7865213.html
Copyright © 2011-2022 走看看