首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JPA (Hibernate)创建与同一实体的关系?

如何使用JPA (Hibernate)创建与同一实体的关系?
EN

Stack Overflow用户
提问于 2010-07-21 22:23:19
回答 3查看 3.7K关注 0票数 0

我有一个实体管理器,它应该有属性管理器,其中User是另一个用户(一个管理器可以管理多个用户,任何用户可以只有一个管理器,也可以没有)。

我如何实现这一点?

我试过一些标准的东西

代码语言:javascript
复制
@ManyToOne
@JoinColumn (name = ??? /* what should be here? */, nullable = true)
private User manager;

但事情并不像看起来那么简单..

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-21 22:29:18

有什么问题吗?使用缺省值,即如果您不知道如何命名联接列,则不要设置name (应该缺省为类似MANAGER_ID的名称)。在name属性的javadoc中:

(可选)外键列的名称。它所在的表取决于上下文。如果联接用于OneToOne或多ToOne映射,则外键列位于源实体的表中。如果联接是针对ManyToMany的,则外键位于联接表中。默认值(仅适用于使用单个联接列):以下各项的串联:引用实体的引用关系属性或字段的名称;"_";被引用的主键列的名称。如果实体中没有这样的引用关系属性或字段,则join列名由以下内容拼接而成:实体名称;"_";被引用主键列的名称。

票数 2
EN

Stack Overflow用户

发布于 2010-07-21 22:28:31

这应该是可行的:

代码语言:javascript
复制
@OneToOne
@JoinColumn(name="manager")
private User manager;
票数 4
EN

Stack Overflow用户

发布于 2010-07-21 22:30:23

您应该将要联接的列的名称放到User实体中。名称可以是你想要的任何东西,它将出现在你的数据库中。"manager_id"之类的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3300263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档