问题描述
- 关于java web级联问题
-
设置级联关系时,为什么是多的一方设置级联查询;而不是一的一方?
即:cascade = CascadeType.ALL在多的一方而不是一的一方。设置在一的一方会有什么问题?
解决方案
cascade的值是在many-to-one 还是在set中设置的,如果是在set中设置的,那么就由一的一方来维护级联关系 一.set(多) 来保存 如果是在many-to-one
中设置的则:多.set(一) 另外二者级联关系的操作还与inverse有关,即控制反转,即默认值为false,表示默认由一的一方来维护二者的关系 ,如果
在set 中将其值设置为true,那么表示由多的一方来维护二者的关系,此时如果还是仅仅使用一.set(多) 那么就会出现在多的一方的外键为null的情况,因此必须
同时使用多.set(一) 来设置。
解决方案二:
设置在一的一方的话就会出现如果查一的那方他就会将级联的表都查出来,,就会造成N+1的情况,,性能会很低
时间: 2024-08-05 13:50:39