我有一个数据库视图,产生一个没有真正主键的结果集.我想使用Hibernate/Persistence将此结果集映射到Java对象.当然,因为没有PK,我无法用任何字段装饰@Id.
在部署时,Hibernate抱怨失踪@Id.我该如何解决这个问题?
我用Hibernate制作了一个示例应用程序.我的要求是桌面上没有主键.我只需要从应用程序中选择查询.我知道应该有一个主键,但我所指的表是没有它的.
它有大约5万条记录.因此,修改表以添加ID列不会看到可行的选项.
有可能吗?
可能重复:
休眠而没有PK
任何人都知道如何在没有主键的情况下为表或视图执行hibernate映射?
起初我认为这个解决方案可能会解决我的问题:
@Entity
public class User {
@JoinTable(name = "user_permission",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "permission_id"))
@MapKeyJoinColumn(name = "project_id")
@ElementCollection
private Map<Project, Permission> permissions = new HashMap<>();
}
@Entity
public class Project {
...
}
@Entity
public class Permission {
...
}
Run Code Online (Sandbox Code Playgroud)
但在这个实现中,Permission每个Project. 我想完成为项目设置多个权限的能力,以便以下内容为真:
| user_id | project_id | permission_id |
|---------|------------|---------------|
| 1 | 1 | 1 |
|---------|------------|---------------|
| 1 | 1 | 2 |
|---------|------------|---------------|
| 1 | …Run Code Online (Sandbox Code Playgroud)