2012-02-11 71 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. 
相關問題