2016-07-10 3 views
0

Предположим, что таблица базы данных Customer, которая отображается в класс Customer, имеет больше полей, а затем описана в аннотациях.Не читайте поля с Hibernate?

Возможно ли прочитать любое из таких не отображаемых полей?

ответ

1

Если вы не хотите сопоставлять их своим Клиентам. Вы можете создать второй объект Customer, такой как SpecialCustomer, где вы можете сопоставить все, что хотите, и не отображаться в клиенте. Если у вас есть поле, которое отличается между двумя типами клиентов, вы можете использовать @DiscriminatorColumn и значение дополнительно.

Ознакомьтесь с стратегией наследования Hibernate Inheritance. https://docs.jboss.org/hibernate/orm/3.5/reference/en/html/inheritance.html

В качестве альтернативы, если вы действительно действительно не хотите сопоставлять какие-либо дополнительные классы и поля, у вас есть возможность использовать запрос NativeSQL и сопоставить результаты с какой-либо структурой по вашему выбору.

http://www.thoughts-on-java.org/result-set-mapping-basics/

Если бы я был на вашем месте, я бы для SpecialCustomer подхода.

+0

Нельзя ли как-то получить доступ к исходным необработанным данным? – Dims

+1

Абсолютно нет! Hibernate генерирует SQL из сопоставлений. В этом конкретном случае нет таких необработанных данных AS, потому что дополнительные поля даже не содержатся в наборе результатов. Сори, я понимаю, что это не тот ответ, на который вы надеялись. –

+0

Не могу ли я настроить процесс генерации SQL для добавления обязательных полей в набор результатов? – Dims

Смежные вопросы