【问题标题】:How to create and add data to Table 3 without adding data to Table 1 and Table 2 in hibernatehibernate如何在不向表1和表2中添加数据的情况下创建并添加数据到表3
【发布时间】:2016-04-19 19:14:18
【问题描述】:

我是 Hibernate 的新手,无法找到解决当前情况的方法。这是一种多对多关系,但唯一的区别是我希望数据只插入表 3 而不是表 1 和表 2。

表 1 和表 2 已经包含了所有数据。

当前要求:

表 1 有用户 ID、名字、姓氏(已经存在) 表2有文档id、文档名称、文档内容(已经存在) 表 3 应该有用户 ID 和文档 ID 表 1 和表 2 都已经预先填充了所有数据。 现在,如果用户查看文档,我想在第三个表中创建一个条目,而不在表 1 和表 2 中保留或更新。 我们希望维护用户查看的文档的数据,以便即使用户注销并重新登录,我们也可以只向他显示未读的文档。 在这种情况下,Hibernate 的最佳用途是什么?

【问题讨论】:

    标签: java sql hibernate object relationship


    【解决方案1】:

    您不需要更新人员或文档表。如果您配置正确,Hibernate 能够将条目添加到您的第三个表(连接表)。 您只需使用 @ManyToMany 注释集合,并确保您使用数据库中的实体而不是创建新实体:

    • 从 DB 加载人员
    • 从数据库加载文档
    • 将文档放入人员列表中
    • 保存人员实体

    请参阅此处:http://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example-annotation/ 以获得良好的演练

    【讨论】:

    • 你的意思是,文档列表将在人员类中,人员列表将在文档类中。我需要加载两个现有对象,然后为两个列表做一个集合并保存对象......这只会保留在第三个表中而不是现有的两个表中?我找不到任何例子。
    • 是的。如果一切设置正确,数据库只会更改 join_table。您可以按照上面链接中的说明执行此操作,但根据您的模型,您还可以尝试此处说明的 ManyToOne 关系:codejava.net/frameworks/hibernate/… 如果您想让它更清楚,您还可以为您的第三个表创建一个类。 ReadStatus {Person p;记录 d} 并将其映射到第三个表。
    • 你能给我一个例子吗?您提供的链接在所有三个表中插入值,我只需要将数据插入到具有多对多关系的连接表中
    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多