Воспроизвести фреймворк onetoone удалить ссылочную целостность

Я получаю нарушение ограничения ссылочной целостности для теста 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]

Спасибо


person smk    schedule 30.10.2011    source источник


Ответы (1)


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


    @OneToOne
    public User user;

Повторите попытку с удалением еще раз.

person emt14    schedule 31.10.2011