Hibernate не обновляет (объединяет) объект - PullRequest
2 голосов
/ 22 июня 2011

У меня есть объект tag, который сводит меня с ума.Я пытаюсь обновить его, и каждый раз, когда я делаю все, кажется, что все в порядке, пока я не проверю базу данных, и она не обновляется.

У меня все журналирование включено, но я не вижу ничего изобычный.

Даже после того, как я создаю новый объект и сразу пытаюсь обновить (или объединить) его, он не будет отображаться в базе данных.Он создаст новый объект, но не обновит его.

У кого-нибудь была похожая проблема и как вы ее решили?

<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>

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Остерегайтесь mutable="false", это делает объект неизменным приложением:

Как указано здесь: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html

изменяемый (необязательно - по умолчанию true): указываетчто экземпляры класса (не) изменчивы.Неизменяемые классы mutable = "false" не могут быть обновлены или удалены приложением.Это позволяет Hibernate вносить незначительные оптимизации производительности.

Удаление mutable="false" из файла hbm решает проблему.

0 голосов
/ 22 июня 2011

Вы пытались установить (и сохранить) тег на элемент вместо добавления элементов в класс тегов?

Таким образом, в основном выполняем то, что требуется для базы данных, сначала создаем тег (без какой-либо ссылки на элементы), а затем создаем элементы (записи) со ссылками на тег.

...