问题标签 [joincolumn]

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 投票
1 回答
1494 浏览

hibernate - 插入带有连接列的实体

我想在数据库中插入具有两个连接列的实体“CategorieTresorerie”。问题是,其中一个(RegroupementCategorieTresorerie)正在尝试自动插入......但是这个已经在数据库中,所以我有一个重复的键值违规异常。

错误代码:

我要插入的类:

加入类 RegroupementCategorieTresorerie,是 hibernate 尝试自动插入的类:

加入列 TypeCategorieTresorerie:

如何在不自动插入连接列的情况下插入 CategorieTresorerie?

谢谢您的帮助。

0 投票
2 回答
2402 浏览

java - 使用 OR 条件而不是 AND 条件连接列的注释

我有 2 个 java 类RelationPerson,它们都存在于我的数据库中。

人:

关系:

每个 Person 都有一个关系列表(或没有),当关系的 child_id 或 parent_id 等于该人的 id 时,应将关系添加到列表中。

TL;DR:当relation.child_id OR relation.parent_id = person.id=> 将关系添加到与人的关系列表中

我面临的问题是这个注释:

创建以下 SQL(只是必要的部分):

Java Hibernate中生成SQL语句的正确注释是OR而不是AND

0 投票
2 回答
3218 浏览

java - @JoinColumn 注释在 Hibernate 中是强制性的吗?

在Hibernate中,要指定加入关联的列,使用@JoinColumn注解,例如这样:

在大多数情况下,列的名称是蛇形大小写的类名加上_id。因此,期望 Hibernate 自动派生它是合理的(例如,在 Django 的 ORM 中就是这样做的)。但是这种行为是否以某种方式实施?

0 投票
0 回答
213 浏览

java - JPA OneToMany JoinColumn 非主键

我有 2 个实体:

我不确定我是否正确映射,但一般想法如下:如果“人”属于同一组,那么他们应该有相同的“事物”。

第一个问题:这种映射在思想上和技术上是否正确?

如果是:

我使用注释动态创建数据库。它创造了我没想到的约束。

在此处输入图像描述

结果当我执行此代码时:

我收到:

0 投票
0 回答
212 浏览

hibernate - 为什么与连接表存在 0...1 关系?

谁能帮我理解为什么在这张图中这个关系是 0...1。当我尝试删除“配置文件”时,Heidi Sql 说存在 FK 违规。逻辑上很好,但我想了解它是如何工作的。没有“个人资料”就没有“健康”,但为什么会有这种关系。所以在我看来,这一定是 1 --- 0...*

该图是使用 intelliJ 创建的,我使用此代码。

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "profile_chronicMedication", joinColumns = {@JoinColumn(name = "id")}, inverseJoinColumns = {@JoinColumn(name = "chronic_medication_id") }) 私有 SetchronicMedications = new HashSet<>();

在此处输入图像描述

编辑:IntelliJ 也可以识别这种类型的关系。对于与连接表的关系,我需要更改什么?这真的不可能吗,或者至少也显示连接表?

班级角色:

@ManyToOne(可选=假)

私人档案档案;

班级简介:

@OneToMany(cascade = CascadeType.ALL, mappedBy = "profile")

私有集角色 = 新 HashSet<>();

在此处输入图像描述

0 投票
1 回答
278 浏览

hibernate - 没有为@ManyToOne 自反关系生成休眠 LEFTJOIN

我有一个自反关联的表:

容器可以关联到父级(列 container_id)。容器可以将容器作为子容器。

问题:

生成的请求是:

我期待左外连接的地方:

没有父容器(根盒 CON0000007)的容器不会被检索,因为左连接不是由 Hibernate 生成的:

身份证 | ORIGINAL_ID| 代码 | 类型 | CONTAINER_ID(父)

1 | 2 | CON000000002 | 包装 | 12

2 | 4 | CON000000004 | 包装 | 10

4 | 6 | CON000000006 | 包装 | 11

5 | 8 | CON000000008 | 包装 | 10

7 | 10 | CON0000002 | 盒子 | 15

8 | 11 | CON0000003 | 盒子 | 15

9 | 12 | CON0000004 | 盒子 | 15

12 | 15 | CON0000007 | 根盒 | 无效的

0 投票
1 回答
390 浏览

java - JPA JoinColumn在另一个实体类中保存id外部实体类

我有实体类 ProjectData。在这个类中,我有 UserData 实体对象。当我得到 ProjectData 时,我使用 @JoinColumn 注释来获取 userData - 它工作正常。但是如果我创建新的 ProjectData 我不知道如何将 userDataId 保存到 PRJ_USER_PM_ID 列;

在表 PROJECT 中,我有用户数据的 id。我尝试使用额外的属性 projectUserid,但在我看来这不是一个好的解决方案。

0 投票
1 回答
70 浏览

java - jpa多对多关系中的列类型错误

我有以下多对多关系

我得到以下异常:

是否可以向 @JoinColumn 添加参数以明确告诉它是字符串值?还有其他解决方案吗?

0 投票
0 回答
58 浏览

jpa-2.0 - 重构具有公共字段但具有不同 @JoinColumn 参数的实体

我有几个实体具有许多表共有的相同字段。但是这些字段在关系表中没有使用相同的参数名称链接(参见附图中的 object_1 和 object_2)。

我创建了一个抽象类(IGlobalObject),并使用@MappedSuperclass 将其链接到子类。现在我必须覆盖参数但我不知道该怎么做?

请参阅附图了解更多详情。在此处输入图像描述

提前致谢

0 投票
1 回答
26 浏览

entity-framework-6 - EF6.1.3 加入列(如在休眠中)

我正在使用 Entitiy Framework 6.1.3,我想将 N 个表的关系添加到 1 个具有超过 1 个连接列的表。以下示例将帮助您理解我的问题:

具有这些列的表 P(协议表):

具有这些列的表 A(模块 A 表):

包含这些列的表 B(模块 B 表):

我想在模块 A 中有一个导航属性来获取该行的所有协议 - 像这样:

(同样适用于模块 B、模块 C ...)

在 Java/Hibernate 中,我知道您可以使用多个 ElementJoinColumns(使用 referenceColumnsNames,...)。

如何使用 EF6.1 处理这个问题?谢谢,马库斯。