hibernate多对一单向关联配置时发现个现象!插入时外键似乎没起约束作用

就是这关联虽然实现了取出many方可以把one方也取出,但是往many方插入数据时,可以加入你不希望加入的数据。比如many的字符段t_xxid必须在one方的t_xxi... 就是这关联虽然实现了取出many方可以把one方也取出,但是往many方插入数据时,可以加入你不希望加入的数据。比如many的字符段t_xxid必须在one方的t_xxid里有才可以插入数据。在数据库里加pk就可以实现,框架管理的时候似乎有点问题。难道插前先做个手动查询one的数据存不存在?这就给人感觉像阉割了的PK。
不过这样也有点好处就程序管理表关系
额仔细想了下这似乎是双向关联的要求,还有就是搞混了数据库PK和hibernate的关联映射的设计思想。问题自己解决- -
展开
 我来答
ken_cqyou
2013-04-01 · TA获得超过1641个赞
知道小有建树答主
回答量:480
采纳率:0%
帮助的人:344万
展开全部
设置级联关系就可以实现了 cascade属性。。。。。
更多追问追答
追问
cascade的维护关系会调用update的(save-update)。(假设我要插入的表为emp,外键关联到的表为dept,Pojo类Emp,Dept)这样我插入可以插入的数据,维护关系调用update的话,就必须确定Emp持有的对象Dept必须是持久化的,而且update的会修改!那么还是必须要查看数据库(当然修改前后dept表数据一样的话,结果也是对的,但是明显做了一次费操作)。
这样还不如自己编逻辑先查看再插入,不设置cascade。.
追答
我当时是用的Hibernate 3.6.X 和 4.X的         映射是用Annotation的,在映射的时候加入@Cascade(CascadeType.SAVE_UPDATE) 这个是Hibernate自带的映射,这样在插入数据的时候,维护关系的那一端会自己检查需要级联的数据 如果不存在  就自己插入,如果存在 就更新,xml形式的我没有试过,无权下定论
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式