Для простоты и ясности предположим, что у меня эти три таблицы.Соедините две таблицы, сравнив одинаковое значение с двумя столбцами.
Сотрудник [ ID ]
EmployeeName [ EmployeeID, имя ]
EmployeeAddress [ EmployeeID, адрес ]
Единственные свойства/отношения, определенные находятся в 'подтаблице' EmployeeName & EmployeeAddress
- EmployeeName BelongsTo Сотрудник
- EmployeeAddress BelongsTo Сотрудник
Там нет свойства/отношений (коллекций) в основной таблице сотрудников, таких как
- Работник HasMany EmployeeName
- Сотрудник HasMany EmployeeAdress.
Я хочу выполнить объединение с использованием DetachedCriteria между EmployeeName и EmployeeAddressтолько(не включая сотрудников), как таковой
выберите EmployeeName.name, EmployeeAddress.address
из EmployeeName internal join EmployeeAddress
где EmployeeName.employeeId = EmployeeAddress.employeeId и EmployeeAddress.addre сс как порядка «% somelocation%» по EmployeeAddress.address
Таким образом, ваши сопоставления не имеют никаких связей между таблицами Employee и EmployeeName/EmployeeAddress? – Vadim
Почему бы не использовать HQL? –
Yads, да нет сопоставлений от Employee to EmployeeName/EmployeeAddress (нет отношений HasMany в классе Employee). Однако обратное верно (отношения BelongsTo в классах EmployeeName и EmployeeAddress). В основном я стараюсь избегать коллекций из-за какой-то бизнес-логики. – boyan