我有一个 EmployeeMonth 对象,它保存计算出的员工获得的奖金和积分。在 EmployeeMonth 对象中有一个 BonusMonth 对象。BonusMonth 对象设置员工每月必须达到的间隔才能获得奖金(此对象每月设置,不应更改)。
当我通过减少重新计算奖金时,例如:88%,我调整 BonusMonth 对象间隔,然后重新计算奖金。然后将新的奖金(结果)保存在同一个 EmployeeMonth 对象中。
然后当我保存新的 EmployeeMonth 时,BonusMonth 也会被保存。
如何配置休眠映射以便不保存 BonusMonth?我只想更新/保存重新计算的 EmployeeMonth 值。
这就是我的映射的样子:
EmployeeMonth.cs
public class EmployeeMonth
{
public virtual Guid Id { get; private set; }
public virtual BonusMonth BonusMonth { get; set; }
public virtual Employee Employee { get; set; }
public virtual int WorkReductionPercent { get; set; }
public virtual int Points { get; set; }
public virtual decimal Bonus{ get; set; }
}
BonusMonth.cs
public class BonusMonth
{
public virtual int BasicPoints { get; set; }
public virtual int ExtraPoints { get; set; }
public virtual int MaxPoints { get; set; }
public virtual decimal BasicBonus { get; set; }
public virtual decimal ExtraBonus { get; set; }
public virtual decimal MaxBonus { get; set; }
}
EmployeeMonth.hbm.xml
<class name="EmployeeMonth">
<id name="Id">
<generator class="guid" />
</id>
<property name="WorkReductionPercent"/>
<property name="Points"/>
<property name="Bonus"/>
<many-to-one name="Employee" unique-key="EpId" column="EmployeeId" cascade="none" not-null="true" insert="true" update="false" />
<many-to-one name="BonusMonth" column="BonusMonthId" cascade="none" not-null="true" insert="true" update="false" />
</class>
BonusMonth.hbm.xml
<class name="BonusMonth">
<id name="Id">
<generator class="guid" />
</id>
<property name="BasicPoints"/>
<property name="ExtraPoints"/>
<property name="MaxPoints"/>
<property name="BasicBonus"/>
<property name="ExtraBonus"/>
<property name="MaxBonus"/>
</class>