2014-01-03 2 views
0

Я работаю над этим маленьким «веб-сайтом», и я могу составить список ploegen. Но я не могу их удалить. каждый раз, когда я нажимаю на кнопку удаления, я получаю сообщение об ошибке:playframework исполнение исключение

[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]]] 

Это код, я использую, чтобы сделать кнопку удаления:

@form(routes.Application.deletePloeg(ploeg.id)) { 
    <input type="submit" value="Delete deze ploeg"> 
} 

Чем это метод:

public static Result deletePloeg(Long id) { 
    Ploeg.delete(id); 
    return redirect(routes.Application.ploegen()); 
} 

En this is the function in my Ploeg.class:

public static void maak(Ploeg ploeg) { 
    ploeg.save(); 
} 

public static void delete(Long id) { 
    find.ref(id).delete(); 
} 

Ошибка, которую я получаю, касается строки: ploeg.save();

У меня действительно нет проблем, я нажимаю кнопку «Удалить», но это дает мне ошибку, спасая ploeg. Поэтому, если кто-то может сказать мне, что я делаю неправильно, и как я могу это исправить. Благодаря!

ответ

0

Вы не можете получить экземпляр Ploeg в качестве входного параметра вашего действия.

Ваш код должен, вероятно, искать что-то вроде:

public static void maak() { 
    Ploeg ploeg = new Ploeg(); 
    ploeg.save(); 
} 

EDIT

я изменил его, как это и это работает. Только когда я пытаюсь удалить ploeg, он не удаляет его, а создает новый. Этот новый ploeg не имеет имени, но он вставлен в мою таблицу.

public static void maak(Ploeg ploeg) { 
    ploeg = new Ploeg(); 
    ploeg.save(); 
} 
+0

Это работает, но теперь, когда я нажимаю кнопку удаления, он создает новый ploeg и вставляет его в таблицу. – josvankamp

Смежные вопросы