问题标签 [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.
hibernate - 插入带有连接列的实体
我想在数据库中插入具有两个连接列的实体“CategorieTresorerie”。问题是,其中一个(RegroupementCategorieTresorerie)正在尝试自动插入......但是这个已经在数据库中,所以我有一个重复的键值违规异常。
错误代码:
我要插入的类:
加入类 RegroupementCategorieTresorerie,是 hibernate 尝试自动插入的类:
加入列 TypeCategorieTresorerie:
如何在不自动插入连接列的情况下插入 CategorieTresorerie?
谢谢您的帮助。
java - 使用 OR 条件而不是 AND 条件连接列的注释
我有 2 个 java 类Relation
和Person
,它们都存在于我的数据库中。
人:
关系:
每个 Person 都有一个关系列表(或没有),当关系的 child_id 或 parent_id 等于该人的 id 时,应将关系添加到列表中。
TL;DR:当relation.child_id OR relation.parent_id = person.id
=> 将关系添加到与人的关系列表中
我面临的问题是这个注释:
创建以下 SQL(只是必要的部分):
Java Hibernate中生成SQL语句的正确注释是OR而不是AND
java - @JoinColumn 注释在 Hibernate 中是强制性的吗?
在Hibernate中,要指定加入关联的列,使用@JoinColumn注解,例如这样:
在大多数情况下,列的名称是蛇形大小写的类名加上_id
。因此,期望 Hibernate 自动派生它是合理的(例如,在 Django 的 ORM 中就是这样做的)。但是这种行为是否以某种方式实施?
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<>();
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 | 根盒 | 无效的
java - JPA JoinColumn在另一个实体类中保存id外部实体类
我有实体类 ProjectData。在这个类中,我有 UserData 实体对象。当我得到 ProjectData 时,我使用 @JoinColumn 注释来获取 userData - 它工作正常。但是如果我创建新的 ProjectData 我不知道如何将 userDataId 保存到 PRJ_USER_PM_ID 列;
在表 PROJECT 中,我有用户数据的 id。我尝试使用额外的属性 projectUserid,但在我看来这不是一个好的解决方案。
java - jpa多对多关系中的列类型错误
我有以下多对多关系
我得到以下异常:
是否可以向 @JoinColumn 添加参数以明确告诉它是字符串值?还有其他解决方案吗?
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 处理这个问题?谢谢,马库斯。