Hibernate是否将“ 0”的值更改为“ NULL”?

时间:2019-05-14 09:09:29

标签: c# sql-server hibernate

我继承了一个应用程序以执行一些错误修复。该语言是C#,它使用Hibernate与SQL Server 2016数据库进行通信。

我有一个带有“元素类型”的表,看起来像这样: -0:A型 -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)]

“ Type”的任何其他值都可以正常工作。

这是我第一次使用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>

0 个答案:

没有答案