0
私のアプリケーションで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>
を
マネージドBean
@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用に挿入したコードは表示されませんが、編集しようとすると利用可能です。 – Bala
私はすでにそれを編集しました。将来、メッセージを送信する前に、メッセージエディタの下にあるプレビュー領域に注意し、エディタのヘルプでメッセージのフォーマット規則を読んでください。 – BalusC