Hibernate 在ColdFusion 9.0.1修补程序2的继承图中使用映射的超类时,HBM映射错误
假设我有一个继承图,其中基类扩展了一个映射的超类:Hibernate 在ColdFusion 9.0.1修补程序2的继承图中使用映射的超类时,HBM映射错误,hibernate,orm,coldfusion,hibernate-mapping,coldfusion-9,Hibernate,Orm,Coldfusion,Hibernate Mapping,Coldfusion 9,假设我有一个继承图,其中基类扩展了一个映射的超类: component name="Entity" mappedSuperClass="true" { property name="CreatedOn"; } component name="Pet" extends="Entity" table="Pet" discriminatorcolumn="pet_type" { property name="PetId" fieldtype="id" generator="nativ
component name="Entity" mappedSuperClass="true"
{
property name="CreatedOn";
}
component name="Pet" extends="Entity" table="Pet" discriminatorcolumn="pet_type"
{
property name="PetId" fieldtype="id" generator="native";
property name="Name";
}
component name="Dog" extends="Pet" table="Pet" discriminatorvalue="Dog"
{
property name="FavoriteFood";
}
component name="Cat" extends="Pet" table="Pet" discriminatorvalue="Cat"
{
property name="FavoriteSleepingSpot";
}
在本例中,我有一个带有两个子类的Pet
基类,Dog
和Cat
Pet
还扩展了实体
,它提供了一些审核属性
在ColdFusion 9.0.1和ColdFusion 9.0.1修补程序1中,这些组件被正确映射。我通过转储HBM映射来验证它。但是,在ColdFusion 9.0.1修补程序2中,映射不正确。例如,Cat
映射应为:
<hibernate-mapping>
<subclass discriminator-value="Cat"
entity-name="Cat" extends="cfc:model.Pet"
lazy="true" name="cfc:model.Cat">
<property name="FavoriteSleepingSpot" type="string">
<column name="FAVORITE_SLEEPING_SPOT"/>
</property>
</subclass>
</hibernate-mapping>
但实际生成的是:
<hibernate-mapping>
<subclass discriminator-value="Cat"
entity-name="Cat" extends="cfc:model.Pet"
lazy="true" name="cfc:model.Cat">
<property name="FavoriteSleepingSpot" type="string">
<column name="FAVORITE_SLEEPING_SPOT"/>
</property>
<property name="CreatedOn" type="timestamp">
<column name="CREATED_ON"/>
</property>
</subclass>
</hibernate-mapping>
换句话说,子类映射在实体
类中包含了CreatedOn
,而这是不应该的,这会导致以下错误:
实体映射中的重复列:Cat列:已创建(应使用insert=“false”update=“false”进行映射)
我的问题是,我的实体的声明方式是否有问题?还是我在《热修复程序2》中偶然发现了一个bug?如果是这样的话,解决办法是什么
我当前使用的解决方法是转储HBM文件并手动编辑它们以删除重复的属性映射。这很好,但每次实体发生变化时,我都必须重复这个过程。不幸的是,我们也无法回滚到修补程序1,因为我们需要修补程序2中的一些修补程序。您向报告了吗?还没有,想先看看是否有人有任何想法。可能与83474中引入的更改有关@Daniel:您有没有为此提交过错误?我想知道CF10上是否仍然会发生这种情况?@Todd:我不记得我是否为此提交了错误修复。我想是的。它可能已在CF10中修复,但我不再使用ColdFusion,因此无法验证。您向报告了吗?还没有,想先看看是否有人有任何想法。可能与83474中引入的更改有关@Daniel:您是否为此提交过错误?我想知道CF10上是否仍然会发生这种情况?@Todd:我不记得我是否为此提交了错误修复。我想是的。它可能已在CF10中修复,但我不再使用ColdFusion,因此无法验证。