0投票
您好,
我在提交事务时遇到相同的问题而失败了。我用AnsiString更改了我的所有映射字符串。但我仍然得到错误。
选择工作正常,即使删除也工作正常。
如果我的事务只包含一个插入语句或更新语句,那么它也可以正常工作。
但是当有多个查询(插入/更新)时,那么在提交时它会给出错误“完整性约束:未找到父密钥”
你能帮帮我吗?
...马赫什
答案 0 :(得分:0)
此错误是完整性约束错误。这意味着在交易结束时,父子关系中没有父母的孩子。由于您在提交时收到此错误,因此意味着FOREIGN KEY
被声明为DEFERRABLE
(initialy deferred)并且仅在提交时检查完整性。
你的逻辑有问题,也许你可以发一个简单的例子(CREATE TABLE parent ... CREATE TABLE child ... UPDATE / INSERT),我们可以帮助你。
答案 1 :(得分:0)
NHibernate会在插入新创建的employee_type之前插入(或更新)员工。该错误表示您的员工在数据库中缺少其employee_type。
2个选择:
答案 2 :(得分:0)
我得到了解决方案......
因为NHibernate行为而发生在我身上......
我已经明确地为自动增量创建了序列和触发器。
但它会触发两次,首先是我进行正常保存,第二次是当我调用完成时。因此,id的实际使用和引用之间存在未匹配。
所以它给了我错误 - 找不到父键。
我刚刚删除了所有的触发器和序列,在映射文件中我添加了生成的类作为增量。 :d
“generator class =”increment“”
这对我来说非常有用......
谢谢, 马赫什