对我来说,最终的解决方案是将voetsjoeba的回答作为出发点。我的hibernate配置使用以下选项:
hibernate.order_inserts = true
hibernate.order_updates = true
我从Session
改为 StatelessSession
重新排序Java代码以一次处理一个表中的所有元素。因此,所有表x,然后是表y,依此类推。
<generator>
从每个类中删除了。Java现在创建它并将其分配给对象
创建的逻辑使我能够确定是否仅设置了一个ID,而不是将“空”行写入数据库
最后,我在dynamic-insert
类的hibernate定义中打开了我的类,如下所示:<class name="com.my.class" table="MY_TABLE" dynamic-insert="true">