问题标签 [jointable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2748 浏览

java - 来自一个连接表的多个 @ManyToMany 集

我正在将专有数据库映射到 Hibernate 以与 Spring 一起使用。在其中,有几个可连接对象,对于实体 A 和实体 B,它们具有以下模式:

如您所见,这表明可以有多个 AB 关系将它们放在不同的组中。我想结束,实体 A 的第一行和实体 B 的第二行,以下集合

到目前为止,我只设法将它们放在一组中并忽略 groupEnum 关系属性:

如何在 groupC、groupD 或 groupE 中创建多个集合?

干杯

尼克

0 投票
1 回答
886 浏览

java - JPA 辅助表问题

我有三个表:用户、课程和测试。

Course 有一个 User 外键,Test 有一个 Course 外键。我在为每个用户映射测试集合时遇到问题,因为我需要从用户 -> 课程 -> 测试的中间步骤。我正在尝试使用 SecondaryTable,因为 Test 的 User 键是其关联的 Course 行。

我是否在使用 SecondaryTable 的正确轨道上,或者有没有办法在没有 inverseJoinColumn 的情况下使用 JoinTable?

0 投票
2 回答
103 浏览

database-design - 为连接表建模

我有以下数据库模型:

我想创建一种很好的方法来表示这种关系以及其中的属性与对象,而无需创建一个类来表示 UserRole 表。

有任何想法吗?

非常感谢!

0 投票
0 回答
1517 浏览

java - Using Restrictions.disjunction over @JoinTable association

This is similar, but not identical, to:

Hibernate criteria query on different properties of different objects

I have a SpecChange record, which has a set of ResponsibleIndividuals; these are User records mapped by a hibernate join-table association. I want to create a Criteria query for a SpecChange which has the specified User in its ResponsibleIndividuals set, OR some other condition on the SpecChange.

I'm omitting most of the code for clarity, just showing the relevant annotations:

What I want to do:

This generates wrong SQL:

...and fails:

(I omitted another condition in the where clause, hence parameter #2 is the one shown. I am sure that 'currentUser' is not null.)

Note that the restriction references the wrong table: this_, which is SpecChange, not the User table

I tried a dozen different tricks to make it work correctly (including creating an alias, as mentioned in the previous post above). If there is a way to do it using the alias, I wasn't able to determine it.

The following DOES work (but doesn't accomplish what I need, since I can't use it in a disjunction): criteria.createCriteria("responsibleIndividuals").add(Restrictions.idEq(currentUser.getId()));

[Edit: a workaround for what seems like a bug in Hibernate, using HQL]

This won't work without the alias "scResponsibleIndividuals"

0 投票
1 回答
997 浏览

ruby-on-rails - Rails中的多态连接表?

在我的应用程序中,一个事件有多个与之关联的项目,可能是所有不同的类型。例如,“用户吃了香蕉”事件将有一个用户和一个与之关联的香蕉。

似乎实现此目的的一种方法是使用具有 3 个字段的多态连接表:event_id、attachable_type 和 attachable_id,其中 attachable 是多态类型。

这是可能的和/或我在这里离基地很远吗?

0 投票
3 回答
1841 浏览

java - 使用 @ManyToMany 的自引用对称 Hibernate 映射表

我有以下课程

我需要创建一个映射表,其中元素以多对多对称关系相互映射。

我有以下要求

当元素 A 作为与元素 B 的连接添加时,元素 B 应该成为元素 A 的连接。所以 A.getConnections() 应该返回 B,B.getConnections() 应该返回 A。我不想显式创建 2记录一个用于将 A 映射到 B,另一个用于 B 到 A。

这可能吗?

更新:感谢您的所有建议。
当我尝试@Pascal 的建议时,当我尝试将元素 1 与元素 2 连接时,会创建如下两条记录。

FROM_ELEMENT_ID、TO_ELEMENT_ID
1、2
2、1

我希望记录是对称的,其中 1,2 与 2,1 相同

这个问题是如何处理的?

更新 我明确创建了一个地图bean

我将 ElementBean 更新为

在这里我可以控制插入和删除。例如,在插入新的 ConnectionBean 之前,我通过检查 Connection 表中的记录来检查元素 A 和 B 之间是否存在连接 where
((from == A && to == B) || (from == B && to == A))
插入前。

0 投票
1 回答
136 浏览

java - @JoinTable 是否具有“table”属性?

以下是从hibernate的文档中复制的。(http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e2770

但是,当我将其付诸实践时,我发现@JoinTable 没有“table”属性,而是有一个“name”属性来指定表名。但我需要“表”属性来指定索引。

这里发生了什么?我几乎要疯了!

0 投票
2 回答
1236 浏览

database-design - 好友列表:关系数据库表设计

因此,好友列表的现代概念:
假设我们有一个名为 Person 的表。现在,那个 Person 需要有很多好友(其中每个好友也在 person 类中)。构建关系最明显的方法是通过连接表。IE

但是,当用户想要查看他们的好友列表时,程序必须检查“person1_id”和“person2_id”列才能找到他们所有的好友。

这是实现这种表的适当方法,还是将记录添加两次更好..即

所以只需要搜索一列。

提前致谢。

0 投票
3 回答
187 浏览

ruby-on-rails - 在 Rails 中,如何在 HABTM 关系中找到不相关的记录?

我在 Rails 中的视频和活动之间有 HABTM 关系,这意味着该关联存储在连接表中。我想找到所有没有相关活动的视频。这样做最有效的方法是什么?

谢谢你看=)

0 投票
1 回答
2703 浏览

java - 如何一次删除 Hibernate JoinTable 中的所有关联?

我们有以下两个具有多对多关联的实体:

如果我们想截断所有数据

我们必须清除“user_has_role”JoinTable 中的所有关联,如此答案所示:

有没有办法在不遍历所有数据的情况下一次删除 JoinTable 中的所有关联?也许有一个特殊的 HQL-Command 之类的DELETE Role.user_has_role