В одном из моих представлений jsf я отображаю список пользователей с некоторой информацией, такой как: CardId (дочерний), Имя (родительский), Фамилия (родительский).
Отображаются только атрибуты дочернего класса.
Класс User содержит имя и фамилию Firsname и потомка, новый атрибут cardId.
<h:selectOneMenu>
<f:selectItem itemLabel="Looking into my pocket ..." />
<f:selectItems value="#{PresentationBean.getReaders()}" var="reader" itemLabel="#{reader.cardId} (#{reader.firstname}-#{reader.lastname})" itemValue="#{reader.cardId}" />
</h:selectOneMenu>
Детский класс
@Entity
public class Reader extends User {
private int cardId;
//some code
}
Родительский класс
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Entity
public abstract class User {
private String firstname, lastname;
//some code
}
В результате в моем выпадающем списке отображается только CardId
В журнале также указывается, что все поля запрошены.
20:36:26,627 INFO [stdout] (default task-26) Hibernate: select reader0_.email as email2_4_, reader0_.city as city3_4_, reader0_.street as street4_4_, reader0_.zipCode as zipCode5_4_, reader0_.firstname as firstnam6_4_, reader0_.lastname as lastname7_4_, reader0_.accountBalance as accountB8_4_, reader0_.cardId as cardId9_4_ from User reader0_ where reader0_.DTYPE='Reader'