我正在使用playframework创建一个小“网站”。我已经创建了一个方法来创建一个ploeg来显示它们。但是当我尝试删除它们时(按钮做了那个)ik给了我这个错误:
[PersistenceException: ERROR executing DML bindLog[] error[Unique index or primary key
violation: "PRIMARY_KEY_4 ON PUBLIC.PLOEG(ID)"; SQL statement:\n insert into ploeg
(id, naam, punten) values (?,?,?) [23505-172]]]
这是我的Ploeg.java中的错误所在的方法:
public static void maak(Ploeg ploeg) {
ploeg.save();
}
这是我的Ploeg.java:
package models;
import play.data.validation.Constraints;
import play.db.ebean.Model;
import play.data.validation.Constraints.*;
import javax.persistence.*;
import java.util.*;
/**
* Created by Bram on 3/01/14.
*/
@Entity
public class Ploeg extends Model {
@Id
public Long id;
//@Required
public String naam;
public Integer punten;
public static Finder<Long, Ploeg> find = new Finder(
Long.class, Ploeg.class
);
public static List<Ploeg> all() {
return find.all();
}
public static Ploeg maak(Ploeg ploeg) {
ploeg.save();
return ploeg;
}
public static void delete(Long id) {
find.ref(id).delete();
}
public static void geefPunt(Long id) {
Ploeg ploegje = find.byId(id);
ploegje.punten = ploegje.punten + 3;
}
}
现在从我的Applicaion.java中调用该方法,如下所示:
public static Result deletePloeg(Long id) {
Ploeg.delete(id);
return redirect(routes.Application.ploegen());
}
再次通过单击删除按钮从index.scala.html触发该方法:
@form(routes.Application.deletePloeg(ploeg.id)) {
<input type="submit" value="Delete">
}
我希望有人可以帮我解释这个错误的含义以及解决方法。我一直试图这样做超过6个小时。
答案 0 :(得分:0)
在我的路线文件中,我喜欢这一行:
POST /ploegen controllers.Application.deletePloeg(id: Long)
我改为:
POST / controllers.Application.deletePloeg(id: Long)
我不知道为什么,但它确实有效!