尽管FetchType.EAGER和JOIN FETCH,我得到一个LazyInitalizationException,同时增加一些对象,以一个@ManyToMany通过收集JSF UISelectMany组件,如我的情况<p:selectManyMenu>.
的@Entity IdentUser,有FetchType.EAGER:
@Column(name = "EMPLOYERS")
@ManyToMany(fetch = FetchType.EAGER, cascade= CascadeType.ALL)
@JoinTable(name = "USER_COMPANY", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "COMPANY_ID") })
private Set<Company> employers = new HashSet<Company>();
Run Code Online (Sandbox Code Playgroud)
的@Entity Company,有FetchType.EAGER:
@ManyToMany(mappedBy="employers", fetch=FetchType.EAGER)
private List<IdentUser> employee;
Run Code Online (Sandbox Code Playgroud)
JPQL,包含JOIN FETCH:
public List<IdentUser> getAllUsers() {
return this.em.createQuery("from IdentUser u LEFT JOIN FETCH u.employers WHERE u.enabled …Run Code Online (Sandbox Code Playgroud) 如何从支持bean中的UISelectMany组件中收集所有选定值,例如h:selectManyListbox,h:selectManyMenu,h:selectManyCheckbox,p:selectManyListbox,p:selectManyMenu,p:selectManyCheckbox等?
如果有人可以帮助一个例子,那将真的有帮助.
我知道如何preselect <p:selectOneMenu>,在selected中value应该是from中的对象之一<f:selectItems>,但是该组件如何在后台工作,我可以更改此行为吗?
以我为例,我有一个重复的对象,实际上这是两个具有相同值的对象,但是创建了两次,并且所选对象与该对象<p:selectOneMenu>不同,<f:selectItems>并且无法识别它。我很可能会更改设计,因此它会指向同一个对象,但是如果由于遗留代码或其他原因而无法执行该操作,我该如何更改<p:selectOneMenu>它会比较对象的行为id呢?
我以为它是converter负责任的,但是当它呈现时,它不仅会进入getAsObjectmethod getAsString,所以我想这里有些不同,但是又是什么呢?
谢谢