NHibernate中实体的插入语句中不包括带公式的鉴别器列
我的问题和下面的帖子描述的完全一样,但还没有得到回答,这是一篇4年前的帖子 总之,我有每个类的表层次结构继承,我在鉴别器列中使用公式。当我尝试插入新记录(实体)时,插入失败,因为生成的sql不包含鉴别器列 或者,我可以定义另一个映射到列的属性,并将鉴别器的“insert”属性设置为false。但是我不喜欢这种方法,因为它会迫使我几乎重写域对象中的公式 如果有人能以更好的方式解决这个问题,我将不胜感激NHibernate中实体的插入语句中不包括带公式的鉴别器列,nhibernate,Nhibernate,我的问题和下面的帖子描述的完全一样,但还没有得到回答,这是一篇4年前的帖子 总之,我有每个类的表层次结构继承,我在鉴别器列中使用公式。当我尝试插入新记录(实体)时,插入失败,因为生成的sql不包含鉴别器列 或者,我可以定义另一个映射到列的属性,并将鉴别器的“insert”属性设置为false。但是我不喜欢这种方法,因为它会迫使我几乎重写域对象中的公式 如果有人能以更好的方式解决这个问题,我将不胜感激 <class name="Account" table="ACCOUNT" abstra
<class name="Account" table="ACCOUNT" abstract ="true">
<discriminator column ="ACCOUNT_TY" type ="string" formula="(case when ACCOUNT_TY in ('CASHCARD','ORPHAN','BLACK','EXTERNAL', 'INTERNAL') then 'OTHER' else ACCOUNT_TY end)" />
<subclass name ="CreditCardAccount" extends ="Account" discriminator-value="PREPAY" dynamic-update="true" >
<subclass name ="OtherAccount" extends ="Account" discriminator-value="OTHER" dynamic-update="true">
<subclass name ="PostpayAccount" extends ="Account" discriminator-value="POSTPAY" dynamic-update="true">
看看这篇文章是否对你有所帮助:对于那些想知道我在下面的帖子中得到答案的人
基本上,如果在鉴别器列中使用公式,则需要定义另一个属性并标记鉴别器的属性insert=“false”
class name=“Account”table=“Account”abstract=“true”>
谢谢你的链接,但我已经去过了。我在那里找不到任何答案!!我错过什么了吗?
class name="Account" table="ACCOUNT" abstract ="true">
<discriminator column ="ACCOUNT_TY" type ="string" formula="(case when ACCOUNT_TY in ('CASHCARD','ORPHAN','BLACK','EXTERNAL', 'INTERNAL') then 'OTHER' else ACCOUNT_TY end)" insert = "false" />
<property name = "AccountType" column = "ACCOUNT_TY" />