我有一个名为Token的Object。它有id,name和value。将一些数据保存到db后,我已将它们加载到网页中
_____________________________________________
|____name____|____value____|____operation____|
tkn1 10 ×
tkn2 20 ×
×
符号使我能够从服务器集合中删除令牌
现在。我添加了值为30的令牌tkn3并删除了tkn2
该表将是:
_____________________________________________
|____name____|____value____|____operation____|
tkn1 10 ×
tkn3 30 ×
通过对集合的这些更改,我如何将它们反映到数据库中 如何确定删除的记录,以及添加的记录?
我应用了两种解决方案:
我的问题:
答案 0 :(得分:1)
•这种方式做这个任务是好的吗? NO
•是否有模式可以完成此任务? 是
•Hibernate可以帮助我做到这一点吗? Hibernate使用Cascade Attribute for List属性
为这种情况提供解决方案参考 http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/collections.html
http://www.mkyong.com/hibernate/hibernate-cascade-example-save-update-delete-and-delete-orphan/
答案 1 :(得分:0)
打击实体应解决您的问题。
@Entity
public class MyEntity {
private static enum Status {
NEW,
PERSISTENT,
REMOVED
}
@Id
private Long id;
private String name;
private int value;
@Transient
private Status uiStatus = Status.NEW;
public Long getId() {
return this.id;
}
public String getName() {
return this.name;
}
public Status getUiStatus() {
return this.uiStatus;
}
public int getValue() {
return this.value;
}
@PostLoad
public void onLoad() {
this.uiStatus = Status.PERSISTENT;
}
public void setId(Long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setUiStatus(Status uiStatus) {
this.uiStatus = uiStatus;
}
public void setValue(int value) {
this.value = value;
}
}