陕西 汽车 网站建设,做网站不备案,推广策略方案,网站建设之开展电子商务1、前言 Hibernate 为程序员提供一种级联操作#xff0c;在编写程序时#xff0c;通过 Hibernate 的级联功能可以很方便的操作数据库的主从表的数据#xff0c;我们最常用的级联是级联保存和级联删除。2、ManyToOne | OneToMany 单词误导 当我们去试用的时候#xff0c;首先… 1、前言 Hibernate 为程序员提供一种级联操作在编写程序时通过 Hibernate 的级联功能可以很方便的操作数据库的主从表的数据 我们最常用的级联是级联保存和级联删除。 2、ManyToOne | OneToMany 单词误导 当我们去试用的时候首先要明确级联关系是一对多还是多对一还是一对一 明确了这一点还不够还要清楚是谁一对多谁多对一这样才能更好地去应用上边的这两个注解ManyToOne OneToMany 记忆公式第一个单词就是当前实体类To 之后的是下方要对应的实体类。 3、举例说明一对多 、 多对一 高二3班的数学老师老师跟高二3班的学生 一对多一个老师可以对应多个学生 多对一多个学生只可对应一个老师 如果换成表、注解的话 tearch老师实体对应的级联操作注解就是OneToMany OneToMany(cascadeCascadeType.ALL,fetchFetchType.LAZY,mappedBynews) private SetStudentBean studentBean; student学生实体对应的级联操作注解就是ManyToOne ManyToOne(cascadeCascadeType.ALL,fetchFetchType.LAZY)
JoinColumn(namenews_id, insertable false,updatable false)
private NewsEntity news; 4、补充 4.1、mappedBy 属性 mappedBy 指定关联实体的属性它的值是属性值而非数据库中列名。 4.2、JoinColumn 注解 可以使用 JoinColumn 注解来替代 mappedBy 属性但是 JoinColumn 的 name 属性指定的是数据库中的列名。 4.3、fetchFetchType.LAZY | EAGER 参考地址https://blog.csdn.net/u010082453/article/details/43339031 1、FetchType.LAZY懒加载加载一个实体时定义懒加载的属性不会马上从数据库中加载。2、FetchType.EAGER急加载加载一个实体时定义急加载的属性会立即从数据库中加载。3、比方User类有两个属性name跟address就像百度知道登录后用户名是需要显示出来的此属性用到的几率极大要马上到数据库查用急加载
而用户地址大多数情况下不需要显示出来只有在查看用户资料是才需要显示需要用了才查数据库用懒加载就好了。所以并不是一登录就把用户
的所有资料都加载到对象中于是有了这两种加载模式。A、实体对象的延迟加载
如果想对实体对象使用延迟加载必须要在实体的映射配置文件中进行相应的配置如下所示
hibernate-mappingclass name”com.neusoft.entity.User” table”user” lazy”true”……/class
/hibernate-mapping一般是对整个实体对象进行设置是否是懒加载而非单个属性。若该实体对象关联某个对象如下面关联的实体对象通常是懒加载