我的實體:Hibernate中,多對一,更新
@Entity
public class Film {
@Id @GeneratedValue(strategy = IDENTITY)
private long filmId;
@ManyToOne
private Category category;
//...
}
@Entity
public class Category implements Comparable {
@Id @GeneratedValue(strategy = IDENTITY)
private long id;
private String name;
@OneToMany(mappedBy = "category")
private List<Film> films;
// ...
}
當我嘗試修改記錄:
filmBo.updateFilm(lastEdited);
一切工作正常,我可能會改變電影標題,持續時間,但我可以」改變類別...爲什麼?
@ EDIT 是的,電影和類別都有實體註釋。
public void updateFilm(Film film) {
getHibernateTemplate().update(film);
}
在那之後,我改變了正確的電影名稱和持續時間,只有類是舊的(沒有變化)
類別
<h:selectOneMenu value="#{c.category.name}" rendered="#{c.editable}">
<f:selectItems value="#{category.getCategoriesList()}" var ="cat"
itemLabel="#{cat.name}"
itemValue="#{cat.name}"/>
</h:selectOneMenu>
<h:outputText value="#{c.category.name}" rendered="#{not c.editable}" />
</h:column>
<h:column>
<f:facet name="header">Action</f:facet>
<h:commandLink value="Edit" action="#{film.editAction(c)}"
rendered="#{not c.editable}" />
</h:column>
我把它'電影'註釋'@實體'以及?另外,請顯示您想要更改'Film.category'的代碼,以及'updateFilm'持續/合併/更新實體的方式。 – mabi
你是想爲電影選擇一個新的'類別',還是你想改變這個類別的名字? – mabi
是的,此外:System.out.println(「AAAAAAAAAAAAAAAAAAAA + lastEdited.getCategory()。getName());從saveAction()寫入新的類別,但更新後,我仍然有舊類 – user2519456