Я только что натолкнулся на странную ошибку:
could not initialize a collection: [webServiceAction.aAssignedApplication#7]
, которая имеет больше смысла после рассмотрения основной причины:
[Macromedia][SQLServer JDBC Driver][SQLServer]Invalid column name 'sName'
По сути, Hibernate пытается найти столбец сортировки внутритаблица ссылок вместо одной таблицы за ссылочной сущностью.Не знаете, как указать Hibernate правильное местоположение.
Есть две сущности (webServiceAction.cfc и app.cfc), связанные через таблицу в отношении многие ко многим.Оба реализуют интерфейс HasName.cfc среди других интерфейсов ..
.
Раздел из webServiceAction.cfc
:
<cfproperty name="aAssignedApplication"
fieldtype="many-to-many"
CFC="model.app"
linktable="G_TRelWebserviceActionAssignment"
fKColumn="fkWebserviceActionID"
inversejoincolumn="fkApplicationID"
lazy="true"
cascade="delete-orphan"
orderby="sName">
.
SQL, перехваченный черезпрофилировщик, прослушивающий базу данных MS SQL:
select aassigneda0_.fkWebserviceActionID as fkWebser2_5_1_,
aassigneda0_.fkApplicationID as fkApplic1_1_,
app1_.pkApplicationID as pkApplic1_0_0_,
app1_.sName as sName0_0_,
app1_.sUUID as sUUID0_0_,
app1_.sToken as sToken0_0_,
app1_.sDescription as sDescrip5_0_0_,
app1_.dCreateDate as dCreateD6_0_0_
from G_TRelWebserviceActionAssignment aassigneda0_
inner join G_TApplication app1_ on aassigneda0_.fkApplicationID=app1_.pkApplicationID
where aassigneda0_.fkWebserviceActionID=?
order by aassigneda0_.sName
Как видно из последней строки в блоке SQL, Hibernate завершает попытку поиска столбца имени в таблице ссылок вместо фактической таблицы позадиобъекты app.cfc.
Я уже попробовал более конкретную запись, добавив в нее имена сущностей и таблиц, но эти попытки тоже не сработали.
Заранее спасибоза любые попытки указать мне правильное направление.Возможно, я смогу исправить это с помощью формулы или написав файл XML самостоятельно, но я бы хотел этого избежать, если это возможно.
Приложение: Мои настройки каскада былислишком агрессивен и cascade="save-update"
достаточно для этой задачи, но основная проблема все еще существует.