播放框架onetoone删除参照完整性

时间:2011-10-30 15:57:18

标签: playframework cascading-deletes referential-integrity

我获得了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 个答案:

答案 0 :(得分:0)

您应该只在关系的所有者上使用一个@OneToOne注释。在您的情况下,用户拥有该专利,因此您可以从您的专利实体中删除以下内容:


    @OneToOne
    public User user;

再次尝试删除。