当前位置: 首页 > 面试题库 >

自我引用具有休眠和注释的多体

红明德
2023-03-14
问题内容

我的大脑开始为此烦恼,这很简单吗:

@ManyToMany(mappedBy = "following", cascade = CascadeType.ALL)
private Set<User> followers = new HashSet<User>();

@ManyToMany(mappedBy = "followers", cascade = CascadeType.ALL)
private Set<User> following = new HashSet<User>();

问题答案:

就像是:

@ManyToMany(mappedBy = "following", cascade = CascadeType.ALL)
@JoinTable(name="UserRel", 
                joinColumns={@JoinColumn(name="ParentId")}, 
                inverseJoinColumns={@JoinColumn(name="UserId")})
private Set<User> followers = new HashSet<User>();

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="UserRel", 
                joinColumns={@JoinColumn(name="UserId")}, 
                inverseJoinColumns={@JoinColumn(name="ParentId")})
private Set<User> following = new HashSet<User>();


 类似资料:
  • 问题内容: 我正在使用hibernate注释,并且想导出数据库模式。 类似于带有hbm xml文件的schemaexporttask。 问题答案: 确实,原始的Hibernate Core 只能处理Hibernate XML映射文件,而不能处理注释。您需要的是Hibernate Tools 附带的工具。 这是一个改编自Java Persistence With Hibernate的用法示例: 也可

  • 问题内容: 有一个结构。我想以这种方式链接这三个实体:公司应包含ID,公司名称和部门列表,每个部门都有一个工人列表,ID和部门名称。每个工人都有名字,身份证。 我试图与一对多和多对一建立联系,但未成功。 公司 部门 工人 我从开始: 它填充公司,但不填充其他表,也没有创建任何联接(映射)错误: 问题答案: 除了Glenn Lane的答案中提到的级联,您还需要了解双向关联是如何工作的。 它们有一个所

  • 问题内容: 我想使用联接表在两个表之间建立一对多关系。 最后,我想使用Hibernate批注执行此操作。 我找到了一些使用xml映射执行此操作的示例,但没有带注释的示例。 我相信这就是需要创建表的方式 问题答案: 不要寻找例子。阅读官方文档: 另外,请注意,这是单向一对多关联的默认设置。因此,如果默认的表名和列名适合您,您甚至不必提供注释。

  • 问题内容: 它为什么如此重要?根据XML映射的优势是什么?你能解释这些吗?谢谢。 问题答案: 它不是“强制性”中的重要内容。有优势和劣势的可能性是不同的。 优点: 编译时检查:如今在IDE中,用Java(而不是Xml)编写非常易于使用。启动应用程序(渐进式编译)时,没有发现 更多错别字 ,也没有什么值得记住的( 完成 )… 使用代码进行本地化(类级别):不必打开两个文件(java和xml)以获取完

  • 问题内容: @UniqueConstraint 和 @Column(unique = true)有 什么区别? 例如: 和 问题答案: 如前所述,是仅当单个字段时的快捷方式。 从您给出的示例来看,两者之间存在巨大差异。 此代码意味着和都必须是唯一的,但必须分开。这意味着,例如,如果您有一个 mask.id = 1 的记录,并尝试插入另一个 mask.id = 1的 记录, 则会 出现错误,因为该列

  • 问题内容: 休眠注释应该放在哪里? 它是我的实例变量上方的线吗?还是在吸气剂之前?还是在二传手之前?还是真的不重要吗? 非常感谢 问题答案: 您可以将它们放在 野外 或 吸气剂上 。从《 Hibernate注释参考指南》中: 2.2.1。将POJO标记为持久实体 (…) 根据您是否注释字段或方法,Hibernate使用的访问类型将是字段或属性。EJB3规范要求您在将要访问的元素类型上声明注释,即,