hibernate определяет класс из нескольких столбцов в нескольких таблицах

у меня есть класс с некоторыми полями данных:

class Call{
roomId
roomDisplay
roomLocation
typeId
name
staffAidId
}

теперь я хотел бы сопоставить это, используя аннотации спящего режима в java, но исходный запрос sql, который я использовал, был примерно таким:

SELECT 
    c.roomId, 
    r.display, 
    r.location, 
    c.typeId, 
    c.staffAidId, 
    s.firstname,
  s.lastname
FROM callalert c 
JOIN staffmember s  
LEFT JOIN roomGroup g ON g.groupId = s.roomGroupId 
LEFT JOIN room r ON r.roomId = g.roomId
WHERE s.staffId = 4444 AND c.roomId = g.roomId 

Есть ли способ сопоставить это другими словами: есть ли способ сопоставить столбцы из разных таблиц в 1 настраиваемый класс? класс не является прямым представлением 1 таблицы и из всех задействованных таблиц используются не все столбцы

редактировать

Я попробовал решение для просмотра:

создал представление с указанным выше запросом, затем я пытаюсь сгенерировать классы гибернации с помощью Netbeans, и я генерирую 2 класса: класс Calls и встраиваемый класс CallId

после поиска в Интернете это происходит потому, что спящему режиму нужен первичный ключ, поэтому он сам создает его

как я могу убедиться, что сгенерирован только 1 класс? как дать представлению первичный ключ (хорошим первичным ключом будет один из первичных ключей базовых таблиц). как мне это установить?


person Berty    schedule 16.04.2011    source источник


Ответы (1)


У вас должно получиться это сделать, если вы создадите представление базы данных для этого запроса. Это сработает, но у него есть обратная сторона: вы не можете автоматически сгенерировать схему ddl из моделей базы данных.

Ознакомьтесь с этой статьей

person Ioan Alexandru Cucu    schedule 16.04.2011
comment
С досадой, что класс нельзя использовать для обновления кода в базе данных, если само представление не обновляется. - person Paulo Santos; 16.04.2011
comment
Я пробовал, но он генерирует 2 класса: проверьте первое сообщение после редактирования - person Berty; 18.04.2011