需要根据用户的请求更新/删除值列表

时间:2014-06-27 03:46:00

标签: java hibernate list cookies

我有一个要从数据库中检索并显示给用户的名称列表,然后用户可以编辑它们或保持不变。

我想知道如何实现它以将新值与检索到的值进行比较。

让我们说值如下

  ID Value
  -------- 
  1  Jack
  2  Daniel
  3  Allen
  4  Nick

一旦向用户显示,他/她就会将其更改为

  ID Value 
  --------
  1  Jack Moore  //moore is added
  2  Alex        //value is totally changed
  3             //value is erased
  4  Nick        //unchanged

现在我需要更新前两项的值,从数据库中删除第三项,因为它的新值为空,并保留最后一项。

@Entity
Class Names {
   @Id
   @GeneratedValue
   private long id;
   private long value;
   ...
} 

@Entity
class Students {
  @Id
  @GeneratedValue
  private long id;
  @ManyToOne
  private Names name;

}

我可以考虑将值列表放在cookie中,并将cookie的值与新值进行比较,但不确定这是否是解决问题的最佳方法。

1 个答案:

答案 0 :(得分:0)

假设您已更新名称列表:

    List<Names> namesList = new ArrayList<Names>();
    Names name = new Names();
    name.setId(1);
    name.setValue("Jack Moore");
    namesList.add(name );

    name = new Names();
    name.setId(2);
    name.setValue("Alex");
    namesList.add(name );

    name = new Names();
    name.setId(4);
    name.setValue("Nick");
    namesList.add(name );

将此列表直接发送到JPA会话并调用更新。更新将自动处理创建/更新/删除操作。

    session.update(namesList);

因此,最后您将只在db表中看到以下记录:

ID Value 
--------
1  Jack Moore 
2  Alex       
4  Nick