Я унаследовал приложение для исправления некоторых ошибок. Язык C #, и он использует Hibernate для связи с базой данных SQL Server 2016.
У меня есть одна таблица с типами элементов, которая выглядит так:
- 0: тип А
- 1: тип B
- 2: тип C
В таблице «Элемент» есть поле для типа. Это поле "int NOT NULL" с ключом Foregin для другой таблицы.
Если я пытаюсь вставить элемент с «Type = 0», Hibernate выдает эту ошибку:
not-null property references a null or transient value
Если я проверяю журнал, записанный в консоли Hibernate, я вижу, что он пытается вставить значение NULL для этого поля:
@p27 = NULL [Type: Int32 (0)]
Любое другое значение «Типа» работает нормально.
Я впервые использую Hibernate, и я не могу найти решение для приложения .NET.
Отображение таблицы «Тип»:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="aaa"
namespace="aaa">
<class name="Type" table="Type">
<id name="COD" column="COD">
<generator class="native" />
</id>
<property name="DESC" column="DESC" />
</class>
</hibernate-mapping>
Другой:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="aaa"
namespace="aaa">
<class name="Element" table="Elements">
<id name="COD" column="COD">
<generator class="native" />
</id>
<property name="Type" column="Type" />
<property name="DESC" column="DESC" />
</class>
</hibernate-mapping>