У меня возникли проблемы с представлением поля в XML-файле сопоставления Hibernate, поскольку Hibernate продолжает пытаться извлекать поле из базы данных, хотя по этому имени нет столбца.
У меня, вероятно, отсутствует что-то очевидное, но ... почему вы тогда сопоставляете это поле? Но на всякий случай это может быть хорошим вариантом использования для атрибута <formula>
.
Поле находится в классе Java, и когда я код запроса я могу предоставить пользовательский SQL, чтобы заполнить его, например:. ВЫБРАТЬ т *, (SELECT х FROM у) поле из таблицы t WHERE ... Hibernate позволяет мне затем использовать SQLQuery.addEntity (Z.class) и соответствующим образом создавать объект. Насколько я понимаю, если я полностью покину поле из сопоставления, я никогда не смогу заполнить этот атрибут по моему запросу. Я пробовал :)
Я подозревал что-то вроде этого, но я хотел получить подтверждение. Я не думаю, что у вас есть много вариантов здесь: либо используйте <formula>
(будь то «глупая» формула, чтобы обмануть спящий режим), либо return a non managed entity.
Поля находится в классе Java, и когда я код запроса я могу предоставить пользовательский SQL, чтобы заполнить его, например: SELECT t. *, (SELECT x FROM y) AS field FROM table t WHERE ... Hibernate позволяет мне использовать SQLQuery.addEntity (Z.class) и создает объект соответствующим образом. Насколько я понимаю, если я полностью покину поле из сопоставления, я никогда не смогу заполнить этот атрибут по моему запросу. Я пробовал :) – Fry
Итак, я попробовал иметь и немую формулу, и сложный комплексный запрос, и я получаю следующий NPE: http://pastebin.com/1euDAGeM Что это за ошибка здесь: http: // stackoverflow .com/questions/3331529/native-sql-query-for-a-hibernate-entity-using-formula-results-in-nullpointerexc – Fry
@Fry: Argh! Похоже, что «трюк» не будет работать, по крайней мере, сейчас ... –