【发布时间】:2012-01-19 13:56:19
【问题描述】:
我在我的应用程序中使用 JSF - EJB3 - Hibernate JPA2.0。当我尝试保留新条目时,在其中一个屏幕中出现以下异常:
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: info.novatec.timemgmt.entities.Customer
以下是我的代码块,可能会有所帮助,
查看:
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Customer:" for="customer" />
<h:selectOneMenu id="customer" value="#{projectController.selected.customer}" title="Customer" >
<f:selectItems value="#{customerController.itemsAvailableSelectOne}"/>
</h:selectOneMenu>
<h:outputLabel value="Name:" for="name" />
<h:inputText id="name" value="#{projectController.selected.name}" title="Name" />
<p:calendar id="endDate" value="#{projectController.selected.endDate}" showOn="button" pattern="MM/dd/yyyy" size="10"/>
</h:panelGrid>
托管豆
@ManagedBean
@SessionScoped
public class CustomerController implements Serializable {
// ...
public SelectItem[] getItemsAvailableSelectOne() {
return JsfUtil.getSelectItems(ejbFacade.findAll(), true);
}
// ...
}
JSFUtil 助手类:
public class JsfUtil{
public static SelectItem[] getSelectItems(List<?> entities, boolean selectOne) {
int size = selectOne ? entities.size() + 1 : entities.size();
SelectItem[] items = new SelectItem[size];
int i = 0;
if (selectOne) {
items[0] = new SelectItem("", "---");
i++;
}
for (Object x : entities) {
items[i++] = new SelectItem(x, x.toString());
}
return items;
}
}
你能指出我哪里出错了吗?
【问题讨论】:
-
很抱歉,我为 JSF 插入的代码没有显示,但在我尝试编辑时可用。
-
我已经编辑过了。以后提交消息前请注意消息编辑器下方的预览区,并阅读编辑器帮助中的消息格式规则。