我使用的检票,JPA + Hibernate的项目中检票链接自动坚持对象而AjaxLink不
我已经持久类这样
@Entity
@Table(name = "document", uniqueConstraints = { @UniqueConstraint(columnNames = {
"name"}) })
public class Document
implements Serializable
{
private static final long serialVersionUID = 8496087166198616020L;
@Id
@GeneratedValue
private long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String state;
.....
Geter && setters
然后
我有刀实施粗砺操作
一种方法是
@Override
@Transactional
public void createDocument(Document aDocument)
{
entityManager.persist(aDocument);
}
我的问题是,在wicketPage,如果我用一个Wicket链接,它的onclick方法执行以下操作
document.setState("someState");
它更新与出调用createDocument(文件)的值明确和数据库也跟上时代的
但是,如果使用AjaxLink及其OnClick方法
然后,我必须手动更新,否则价值不会在数据库中更新的对象。我的修改应该如下:
@Override
@Transactional
public void createDocument(Document aDocument)
{
if(aDocument.getId()==0{
entityManager.persist(aDocument);
}
else{
entityManager.merge(aDocument);
}
然后保存在数据库中的变化,我必须先更新状态,并调用createDocument()
方法。
document.setState("someState");
dao.createDocument(document);
任何人都可以指出为什么发生这种情况?
非常感谢