Я работаю в частной сети, поэтому слишком сложно скопировать и вставить мой код. Я нашел множество ответов, близких к тем, что мне нужно, но никто не разработал. Я попытаюсь сделать быстрый пример моего кода, надеюсь, достаточно хорошо, чтобы расшифровать мою проблему.Карта Один столбец таблицы с гибернацией Аннотации
@Table(name="DRIVER")
class Driver {
long id; //ID - primary key of Driver
String driverIdentStr; // DRIVER_IDENT_STR - like driver's license #
}//end class Driver
@Table(name="GROUP_PARTICIPANT")
class GroupParticipant {
long id; //ID - primary key of GroupParticipant
long driverId; //DRIVER_ID - id of the Driver participanting and maps to Driver.id
//I just want this one value from Driver and not the whole Driver...
//I've tried:
//@Formula("(select driverIdentStr from Driver where Driver.id = DRIVER_ID)")
//also tried:
//@Column(table="DRIVER", name="driverIdentStr")
String driverIdentStr;
}//end class GroupParticipant
@Formula неудачи с «таблицей или представлений не найдено», но я определенно есть класс Driver определенного отображение в ВОДИТЕЛЬ таблицу. Когда я изменил язык запросов в @Formula на SQL вместо HQL Hibernate, он жалуется, что GROUPPARTICIPANT0.driverIdentStr является недопустимым идентификатором - думаю, что он пытался извлечь driverIdentStr из GroupParticipant вместо получения значения из Driver (??).
@Column терпит неудачу, я думаю, потому что я не уверен, как сопоставить DRIVER с драйвером. У меня есть в GroupParticipant.
Подводя итог, я не могу понять, как получить GroupParticipant.driverIdentStr, который можно извлечь из присоединения к GroupParticipant.driverId на Driver.id и получения Driver.driverIdentStr.
Любая помощь была бы принята с благодарностью.