我有 Person 和 LoginAccount 类,我想在其中进行一对零或一对一的映射。即一个人可以有零个或只有一个登录帐户。
我试过这个.. Person.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<id name="PersonID">
<generator class="native" />
</id>
<property name="Title" />
<property name="FirstName" />
<property name="SecondName" />
<property name="ThirdName" />
<property name="LegalFullName" />
<property name="LegalFullNameLocal" />
<property name="AliasFullName" />
<property name="Suffix" />
<property name="PreviousLegalName" />
<property name="ReasonForNameChange" />
<many-to-one class="OESPCS.Model.LoginAccount" column="LoginAccountID" name="LoginAccount" foreign-key="fk_LoginAccountID_Person" unique="true">
</many-to-one>
登录帐户.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<class name ="LoginAccount">
<id name="LoginAccountID">
<generator class="native" />
</id>
<property name="LoginId" unique="true" />
<property name="Password" />
<property name="SaltKey" />
<property name="PasswordChangedOnDate"/>
<property name="IsPasswordChangeRequired" />
<property name="IsKeepSignedIn" />
<property name="IsMultiSessionAllowed" />
<property name="PrivacyPolicyVersion" />
<property name="IsLocked" />
<property name="LockedOnDate" />
<property name="LockedTillDate" />
<property name="IsDisabled" />
<property name="DisabledOnDate" />
<property name="DisabledTillDate" />
<property name="LoginFailAttempts" />
<one-to-one class="OESPCS.Model.Person" name="person" foreign-key="fk_LoginAccount_PersonID"/>
</class>
在 DB 中,此映射为我提供了一对一的映射,但在我的项目中,人可能没有 LoninAccount,因此在个人表中 LoginAccountId 可以为空,但正如我们所说的 unique=true 个人 hbm 所以它不允许多次。
所以我需要做一对零或一个映射这可能吗?
如何解决这个问题呢?