2012-02-11 70 views
1

我有映射防止“非空属性引用null或瞬时值”

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DatabaseAccess" namespace="DatabaseAccess.poco"> 
    <class name="Employee" table="emplyees" lazy="true"> 
    <id name="id"> 
     <generator class="increment"></generator> 
    </id> 

    <property name="first_name" not-null="true"></property> 
    <property name="last_name" not-null="true"></property> 
    <property name="login" not-null="true"></property> 
    <property name="sid"></property> 

    </class> 
</hibernate-mapping> 

如果session.Save(对象)不抛出例外,我可以这样做: not-null property references a null or transient value 我要填补这些无论如何都是无效的。

+2

好了,你为什么不叫'Save'前补吗? – NOtherDev 2012-02-11 21:43:12

+3

- “医生,当我这样做时会感到痛苦” - “那就别再做了” – 2012-02-11 22:40:26

+0

@DiegoMijelshon。 +10,如果我可以。 – gdoron 2012-02-12 08:11:51

回答

1

如果session.Save(object)不抛出异常:not-null属性引用空值或瞬态值我想在填充之前填充这些空值。

  • 改变映射是不可空。
  • 在保存之前填入那些空值。
  • 更新保存的实体:

session.Save(obj); 
obj.Foo = new foo(); 

//session.SaveOrUpdate(object) // required if it's a new session. 
相关问题