Play framework onetoone удаляет ссылочную целостность

#playframework #cascading-deletes #referential-integrity

#playframework #каскадирование — удаляет #ссылочная целостность

Вопрос:

Я получаю нарушение ограничения ссылочной целостности для теста JUnit. Использование playframework и моих двух объектов заключается в следующем.

 @Entity
public class User extends Model{

public String email;
public String password;

@OneToOne(mappedBy="user",cascade=CascadeType.ALL)
public Patent patent;

}


@Entity
public class Patent extends Model{


    @OneToOne
    public User user;


}
 

В моем тесте Junit следующая строка завершается ошибкой

 User.findById(user.id)._delete();


Referential integrity constraint violation: "FK340C82E547140EFE: PUBLIC.PATENT FOREIGN KEY(USER_ID) REFERENCES PUBLIC.USER(ID)"; SQL statement:
delete from User where id=? [23003-149]
 

Спасибо

Ответ №1:

Вы должны использовать только одну аннотацию @OneToOne для владельца отношения. В вашем случае пользователь владеет патентом, поэтому вы можете удалить следующее из своего патентного объекта:

 
    @OneToOne
    public User user;
 

Повторите попытку с помощью delete.