Остановить Hibernate от попытки получить рассчитанное поле из базы данных
-
29-09-2019 - |
Вопрос
У меня есть собственность бизнес -объекта, который рассчитывается. Расчет включает в себя некоторые из зарегистрированных в деталях пользователя, и поэтому не может быть представлен как простой запрос SQL.
У меня проблемы с представлением поля в картировании XML -файла Hibernate, потому что Hibernate продолжает пытаться извлечь поле из базы данных, хотя под этим именем нет столбца.
Решение
У меня проблемы с представлением поля в картировании XML -файла Hibernate, потому что Hibernate продолжает пытаться извлечь поле из базы данных, хотя под этим именем нет столбца.
Я, наверное, скучаю с чем-то очевидным, но ... почему ты сопоставляешь это поле тогда? Но на всякий случай, это может быть хорошим случаем использования для <formula>
атрибут.
Поле находится в классе Java, и когда я кодирую запрос, я могу предоставить пользовательский SQL для его заполнения, например: выберите t.*, (Выберите x из Y) как поле из таблицы t, где ... Hibernate позволяет мне Затем используйте sqlquery.addentity (z.class) и создает объект соответствующим образом. Насколько я понимаю, если я полностью оставлю поле из картирования, я никогда не смогу заполнить этот атрибут через свой запрос. Я пытался :)
Я подозревал что -то подобное, но я хотел получить подтверждение. Я не думаю, что у вас здесь так много вариантов: либо используйте <formula>
(будь то «тупая» формула, просто чтобы обмануть сходной) или вернуть не управляемое субъект.
Другие советы
Похоже, вы хотите, чтобы это свойство было "переходным"
<transient name="foo" />