0

如果在用户表中找不到 id,我正在尝试返回管理员

select * /*both admin & user data */ 
from admin,user 
where admin.id = user.id

我同时拥有管理员和用户(我将其用于其他目的)POJO。我在 Admin 中包含 User 并使用@primarykeycolumnjoin & @onetoone (optional=false).

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

4

1 回答 1

0

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

@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
}
于 2013-07-15T17:53:13.213 回答