Структура моей базы данных в основном состоит из нескольких первичных ключей на таблицу, поэтому для соединения требуется несколько столбцов. Я пытаюсь использовать ColdFusion (точнее, 11) коллекцию ORM свойство. Похоже, что список столбцов, разделенных запятыми, в атрибуте fkColumn
не работает, как это работает для свойства отношений. Я сообщил об ошибке в Adobe, но мне интересно, else столкнулся с этим и нашел обходные пути. А может я просто не так делаю..
Настройка стола
Years Staff StaffSites Sites
=========== ============ ============ ===========
YearID (PK) StaffID (PK) YearID (PK) SiteID (PK)
YearName StaffName StaffID (PK) SiteName
SiteID (PK)
Персонал ORM CFC
component persistent=true table='Staff' {
property name='id' column='StaffID' fieldType='id';
property name='year' column='YearID' fieldType='id';
property name='sites' elementColumn='SiteID' fieldType='collection' table='StaffSites' fkColumn='StaffID,YearID';
}
Проблема
Ошибка при выполнении сгенерированного запроса: [Macromedia][SQLServer JDBC Driver][SQLServer]An expression of non-boolean type specified in a context where a condition is expected, near ','.
Взглянув на сгенерированный запрос, видно, что список столбцов не анализируется должным образом для предложения where
, но он в некоторой степени понимает, что в выражении select
есть несколько столбцов.
select
sites0_.StaffID,
YearID as StaffID1_2_0_,
sites0_.SiteID as SiteID4_0_
from
StaffSites sites0_
where
sites0_.StaffID,YearID=?
Цель
Чтобы свойство коллекции ORM правильно поддерживало "объединение" с несколькими ключами. Почему бы не использовать отношения? Я хотел бы использовать объекты ORM, чтобы затем сериализовать их как JSON для использования в службах REST. Сериализованный JSON должен содержать идентификатор отношений, а не фактические данные отношений. Например, полезная нагрузка JSON должна быть:
{
"id": 1234,
"year": 2015,
"sites": [1,2,3]
}
Вместо чего-то вроде:
{
"id": 1234,
"year": 2015,
"sites": [
{"id": 1, "name": "Foo"},
{"id": 2, "name": "Bar"},
{"id": 3, "name": "Baz"},
]
}
Staff
и настройте остальные как «один ко многим» или «многие ко многим» с таблицей ссылок. - person Henry   schedule 23.04.2015