Как вы сопоставляете базовый класс с использованием ColdFusion ORM? - PullRequest
5 голосов
/ 09 августа 2011

У меня есть два компонента, базовый Entity компонент:

<cfcomponent persistent="true">
    <cfproperty name="Id" fieldtype="id" generator="native">
</cfcomponent>

И Client компонент, расширяющий его:

<cfcomponent persistent="true" extends="Entity">
    <cfproperty name="FirstName">
    <cfproperty name="LastName">
</cfcomponent>

Однако, когда я пытаюсь создать экземпляр Client, я получаю сообщение об ошибке, которое говорит о том, что они отображаются как две разные таблицы. Я знаю, что в Hibernate есть возможность игнорировать базовый класс, но как мне это сделать с тегами ColdFusion, или мне нужно обратиться к отображениям HBM для этой функции?

Добавление: удаление persistent="true" из Entity также не работает, Client будет действовать так, как если бы я это сделал, если у него нет свойства Id.

1 Ответ

6 голосов
/ 09 августа 2011

В базовом классе "Entity" попробуйте удалить persistent = "true" и добавить mappedSuperClass = "true".

<cfcomponent mappedSuperClass="true">
    <cfproperty name="Id" fieldtype="id" generator="native">
</cfcomponent>

Необходимо применить обновление 9.0.1 к ColdFusion.

...