休眠 - 需要注释一到零或一个

时间:2013-07-15 17:10:46

标签: hibernate openjpa

如果在用户表

中找不到ID,我试图返回管理员
select * /*both admin & user data */ 
from admin,user 
where admin.id = user.id

我有Admin&用户(我用于其他目的)POJO。我在管理员中添加用户并使用@primarykeycolumnjoin & @onetoone (optional=false)

OpenJPA正确处理此问题,而Hibernate则提供NPE。有谁知道如何做这个Hibernate?

1 个答案:

答案 0 :(得分:0)

我知道这不会直接回答这个问题,但我会考虑更改模型。通常,“admin”是分配给用户而不是独立实体的角色,允许您让用户在不同的场景中扮演不同的角色。

@Entity
@Table(name = "USER")
public class User {
    @ElementCollection
    @CollectionTable(name = "USER_ROLE", joinColumns = @JoinColumn(name = "USER_ID"))
    @Column(name = "ROLE")
    private final Set<Role> roles = new HashSet<>();
}

public enum Role {
    GENERAL, ADMIN, ROOT
}