Я делаю небольшой "веб-сайт", используя playframework. Я создал метод создания ploeg en для их отображения. но когда я пытаюсь удалить их (сделал кнопку для этого), 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 часов.
В моем файле маршрутов я имел следующую строку:
POST /ploegen controllers.Application.deletePloeg(id: Long)
И я изменил его на:
POST / controllers.Application.deletePloeg(id: Long)
Я не знаю почему, но это работает!