Здравствуйте, _me_, Вы писали:
__>в теории все понятно, а можно пример?
а то еще в хибернейта опыта нет особого, только простой маппинг делал. особенно интересно посмотреть на примере как делать lazy и куда прописывать запрос.
Вот пример использования Lazy
//...
@Entity
@Table(name = "USR")
@SequenceGenerator(name = "USER_SEQ", sequenceName = "USER_SEQ", allocationSize = 1)
public class User {
private UserGroup group;
//...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "GROUP_ID")
public UserGroup getGroup() {
return group;
}
public void setGroup(UserGroup group) {
this.group = group;
}
}
Пример выполнения запроса (тут выбирается одна запись)
session.createQuery("from TrafficSource as ts where ts.foreignChannelId = :foreignChannelId and ts.server.id = :serverId")
.setParameter("foreignChannelId", foreignChannelId)
.setParameter("serverId", serverId)
.uniqueResult();
В Вашем случае можно обойтись и critria api, как по мне это предпочтительней, т.к. присутствует контроль типов как минимум. Для Вашего случая запрос будет выглядеть так
getSession
session.createCriteria(Order.class).setFetchMode("member", FetchMode.JOIN).list();