NHibernate, one-to-one mapping, cascading insertion

I have a one-to-one relationship between a company class and a CompanySettings class. When I create a new Company object (the CompanySettings object is created in the Company constructor for the Settings property), and then

SaveOrUpdate(session, companyObject)

I expect INSERT to be a cascade from Company to CompanySettings. However, this does not happen unless I explicitly call SaveOrUpdate on the CompanySettings object.

Display the files shown below:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"`>
  <class name="AST.Domain.Company, AST.Domain" table="Companies">
    <id name="EntityID" column="CompanyId">
      <generator class="guid.comb" />
    </id>
    <property name="CompanyName" />
    . . .
    <one-to-one name="Settings" class="AST.Domain.CompanySettings, AST.Domain"
                constrained="true" lazy="false" />
  </class>
</hibernate-mapping>

My mapping file for the Company Preferences class:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="AST.Domain.CompanySettings, AST.Domain" table="CompanySettings">
    <id name="EntityID" column="CompanyId">
      <generator class="foreign">
        <param name="property">Company</param>
      </generator>
    </id>
    <property name="MaxUsers" />
    <one-to-one name="Company" class="AST.Domain.Company, AST.Domain" />
  </class>
</hibernate-mapping>
+5
source share
2 answers

cascade="all" --?

+5

.

, : CompanySettings "" ?

, "CompanySettings" - " " ?

CompanySettings , "", .

" ", , .

:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"`>
  <class name="AST.Domain.Company, AST.Domain" table="Companies">
    <id name="EntityID" column="CompanyId">
      <generator class="guid.comb" />
    </id>
    <property name="CompanyName" />
    . . .
    <component name="Settings" class="AST.Domain.CompanySettings, AST.Domain">
        <property name="MaxUsers" />
    </component>
  </class>
</hibernate-mapping>

(Company CompanySettings, "Companysettings", Company).

- , CompanySettings ? , , ( imho :)).

+2

All Articles