我有一个映射文件,将给定列指定为not-null="true"
. 这是一个错误,因为表的列NULL
在 Oracle 数据库中设置为。但是我们直到现在才注意到,在创建映射文件一年多之后,因为 Hibernate 一直“忽略”了这一点。那可能吗?
让它更清楚。在数据库上:
CREATE TABLE db.my_table
(...)
my_column NUMBER(10,0) NULL, (...)
在映射文件上:
<column name="MY_COLUMN" precision="10" scale="0" not-null="true">
然后在Java代码上:
getHibernateTemplate().saveOrUpdate(myEntity);
getHibernateTemplate().flush();
此代码适用于我们的环境。一直以来。但是有些客户遇到了问题,ot-null property references a null or transient value
当我调试代码时它没有任何意义。据我所知,这段代码应该永远无法运行。
当然,解决客户问题很简单,我只需要更正映射文件,使其正确代表我的实体。但这里真正的问题是为什么 Hibernate 没有抱怨它?
我在这里问过其他一些在 Hibernate 方面有更多经验的工程师,但他们都没有见过这个。
那么,谁能给个提示?
编辑:只是想强调一下,我们的测试环境和我的客户都在运行完全相同的代码,并且在这两种情况下,myEntity
对象的myColumn
属性都设置为NULL
. 所以,令我困惑的是为什么它不会在我们的环境中产生任何异常。