我有两种对象类型:消息和模板。首先,我创建一个模板,保存它,然后创建一条消息,设置message.template = template然后提交。
但是 - 有时 - 我得到一个约束失败异常,说“无法添加或更新子行:外键约束失败” - 引用模板对象的消息对象的外键。
Hİbernate是否有提交订单?也许首先尝试保存消息对象并且尚未提交-boom-模板对象。我没有对此错误的任何其他解释,因为此代码通常很好但有时会发生错误。
编辑: 这发生在一大块代码中,我无法复制粘贴它。
伪码摘要: 模板模板= new Template(); template.setTemplateName ...等 ...等
我的DAO类保存模板对象。不提交,保存在会话中。
然后为消息对象发生类似的场景,创建,外键,属性被设置然后保存。发生约束失败。
我甚至试图在创建和保存消息对象之前获取该模板对象以查看它是否存在(模板badTemplate = -my DAO类用于模板对象.getByID()),我可以system.out“此模板对象的id是“+ badTemplate.getTemplateId()+”和名称是“+ badTemplate.getTemplateName()”没有任何问题,但这不会阻止失败。这个代码用于Web服务,我可以获得成功的返回和我的另一台计算机上的朋友收到错误。