如何使用Playframework更新Mysql条目

如何使用Playframework更新Mysql条目,playframework,Playframework,我正在使用Playframework编写一个TodoList应用程序。我想更新一个任务,但不知道如何用JPA更新(我只是从使用Zend Framework的PHP开始,不熟悉Hibernate)。 我有一个带有URL的编辑页面,例如: 其控制器: public static void edit(Long id) { models.TaskList selectedTask = models.TaskList.findById(id); render(selecte

我正在使用Playframework编写一个TodoList应用程序。我想更新一个任务,但不知道如何用JPA更新(我只是从使用Zend Framework的PHP开始,不熟悉Hibernate)。 我有一个带有URL的编辑页面,例如:

其控制器:

public static void edit(Long id) {
        models.TaskList selectedTask = models.TaskList.findById(id);
        render(selectedTask);
    }
其模式

@Entity
public class TaskList extends Model {

public String task;
public int priority;
public String category;
public String taskStatus;

public TaskList(String task, int priority, String category, String taskStatus) {
    this.task = task;
    this.priority = priority;
    this.category = category;
    this.taskStatus = taskStatus;
}
模型中是否需要id属性(在数据库中,我有id字段)? 如果没有,当模型没有指定id时如何更新


谢谢大家。

您不需要定义id,因为该id由play.db.jpa.Model类提供。
但是,如果您想定义自己的id,可以将
扩展模型
替换为
扩展通用模型
,然后重新定义自己的@id字段,例如(这是模型类的代码):

无论如何,正如您在前面3行代码中所看到的,默认情况下,Id是一个生成的值。因此,您不关心它的值,因为它是在您第一次持久化对象时由数据库给出的

现在,如果要更新对象,请执行以下操作:

public static void edit(Long id) {
        // get your object
        models.TaskList selectedTask = models.TaskList.findById(id);
        // modify your object
        selectedTask.something = somevalue;
        // update your object
        selectedTask.save();
        // finally render your updated selectedTask
        render(selectedTask);
    }

就这些;)

不客气,如果你厌倦了JPA,尝试一下替代品,比如锡耶纳,它有时会给你一点氧气;)
public static void edit(Long id) {
        // get your object
        models.TaskList selectedTask = models.TaskList.findById(id);
        // modify your object
        selectedTask.something = somevalue;
        // update your object
        selectedTask.save();
        // finally render your updated selectedTask
        render(selectedTask);
    }