Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠不更新(合并)对象_Java_Hibernate_Foreign Keys - Fatal编程技术网

Java 休眠不更新(合并)对象

Java 休眠不更新(合并)对象,java,hibernate,foreign-keys,Java,Hibernate,Foreign Keys,我有一个让我发疯的标签对象。我正在尝试更新它,每次我做的一切似乎都正常,直到我检查了数据库,它没有更新 我打开了所有的日志记录,但我没有看到任何异常 即使在我创建了一个全新的对象并尝试立即更新(或合并)之后,它也不会显示在数据库中。它将创建新对象,但不会更新它 有没有人遇到过类似的问题?你是如何解决的 <hibernate-mapping package="com.package"> <class name="com.package.Tag" table="tags" laz

我有一个让我发疯的标签对象。我正在尝试更新它,每次我做的一切似乎都正常,直到我检查了数据库,它没有更新

我打开了所有的日志记录,但我没有看到任何异常

即使在我创建了一个全新的对象并尝试立即更新(或合并)之后,它也不会显示在数据库中。它将创建新对象,但不会更新它

有没有人遇到过类似的问题?你是如何解决的

<hibernate-mapping package="com.package">

<class name="com.package.Tag" table="tags" lazy="false" mutable="false" >
    <meta attribute="generated-class">com.package.generated.AbstractTag</meta>
    <meta attribute="scope-class">public abstract</meta>
    <cache usage="read-write"/>

    <id name="id" type="long" column="tag_id">
        <generator class="native"/>
    </id>


    <property name="name" type="string" column="name" unique="true"/>

    <property name="itemCount" type="integer" column="itemCount"/>

</class>

</hibernate-mapping>

com.package.generated.AbstractTag
公开摘要
您是否尝试过在项目上设置(并保存)标记,而不是将项目添加到标记类中


因此,基本上要执行数据库所需的操作,首先创建一个标记(不引用项),然后创建引用该标记的项(记录)。

注意
mutable=“false”
它使应用程序可以修改对象:

如此处所述:

可变(可选-默认为true):指定类的实例是(不)可变的。应用程序无法更新或删除不可变类mutable=“false”。这允许Hibernate进行一些小的性能优化


从hbm文件中删除
mutable=“false”
修复了这个问题。

如果您发布一些类似hbm文件(如果有的话)和相关java代码,这会很有帮助。我已经准备好为这一点大发雷霆了。我一直在试图弄明白为什么我的对象的更改一天多没有得到更新。我打开了自动提交,将刷新添加到我的saveOrUpdate方法中,等等。没有任何帮助。非常感谢你发布这篇文章。