CF ORM Many-To-Many со StructKeyColumn такой же, как PK для связанного объекта - PullRequest
2 голосов
/ 09 ноября 2011

Справочная информация. Я пытаюсь максимально прозрачно изменить приложение Transfer ORM на приложение Hibernate ORM.

У меня проблемы с ManyToManys с типом коллекции Struct, когда первичным ключом связанной таблицы является ключ структуры

Перевод позволит вам сделать это:

<manytomany name="Timezone" table="RegionTimezones" lazy="false">
    <link column="RegionID" to="regions.Region"/>
    <link column="TimezoneID" to="regions.Timezone"/>
    <collection type="struct">
        <key property="TimezoneID"/>
    </collection>
</manytomany>   

Эквивалентный тег Hibernate / CFProperty:

<cfproperty name="Timezones" fieldtype="many-to-many" linktable="RegionTimezones" cfc="Timezone" singularName="Timezone" FKColumn="TimezoneID" inversejoincolumn="RegionID" type="struct" structkeytype="string" structkeycolumn="TimezoneID" />

Однако это ошибки с «Повторяющийся столбец в сопоставлении для коллекции: Столбец Region.Timezones: TimezoneID»

Похоже, что structkeycolumn не может быть PK другой таблицы.

Моя проблема в том, что у меня есть много существующего кода вызова, который использует способ переноса.

Кто-нибудь знает какие-либо обходные пути для этого? У меня есть стадные люди, говорящие о «один ко многим» с таблицей ссылок, но я не могу найти никаких ссылок на то, как это сделать в CF?

Спасибо, Dave

...