问题标签 [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.
java - EntityManager 通过 joinColumn 查询
我有一个Login
实体和一个Customer
实体。Login.username
是客户表中的外键。Customer
因此 Java POJO中的以下行
我的问题是:有没有一种简单的方法来customer
使用查询表username
?还是我必须先取login
然后username
再customer
取login
?
这是 JPA 条件查询。而且,是的,我更喜欢使用标准查询。
该行Path<String> path = root.<String>get("username")
抛出异常说username ... is not present.
doctrine-orm - Zend2 Doctrine2 One-To-Many 单向连接表,删除级联问题
我在以下方面遇到了一些问题......我有一张带有电话号码的表格。我想为用户和公司使用同一张表。一个用户也可以有多个电话号码和一个公司。所以我想要一个与两个不同连接表的一对多单向关系。一个将电话号码链接到用户,另一个将电话号码链接到公司。这是遵循此处找到的教义2手册第5.9章的解决方案:(单击)
我的用户实体持有此代码:
我使用单向一对多,因为问题是我不能制作双向的,因为如果我返回给用户,我不能为公司使用相同的电话号码实体类。现在一切正常,但是当我删除电话号码时,出现以下错误:执行“DELETE FROM phone_number WHERE id = ?”时发生异常 带参数 {"1":1}:
SQLSTATE [23000]:完整性约束违规:1451 无法删除或更新父行:外键约束失败(database/user_phone_number_linker
,CONSTRAINT user_phone_number_linker_ibfk_11
FOREIGN KEY(phone_number_id
)REFERENCES phone_number
(id
))
如果我在数据库中手动设置 ON DELETE CASCADE 值,它可以正常工作,但这不是使用教义 2 的想法,我认为我应该能够在代码中解决它,而无需转到我的 phpMyAdmin 面板。不知何故,应该在删除时启动从电话号码到连接表的级联,但不要从 phone_number 实体返回对连接表的引用。
希望聪明的人能帮我解决这个问题。
编辑
与此同时,我学到了更多关于 Doctrine2 的知识,回顾我的老问题让我意识到这不是首先将多个电话号码存储在一个表中的正确方法。为了能够将用户电话号码和公司电话号码存储在同一个表中,我应该使用带有鉴别器列的表继承。该列应包含一些用户/公司鉴别器。
由于该列,ORM 学说将“知道”该电话号码实际上是用户还是公司电话号码。我需要根据学说 2 specs 中的单表继承映射原则进行两个不同的实体定义。
一个类UserPhoneNumber
将与另一个类有many-to-one
关系,User
称为与CompanyPhoneNumber
的one-to-many
关系Company
。我不一定需要连接列,user_id
或company_id
列可以在电话号码表中。在User
类Company
中省略关联,在Company
类User
中省略关联(数据库应允许这些列的空值)。
如果我确实使用连接表,它是根据Doctrine2 规范中的一对多单向连接表描述
阅读更多
否则,您还可以在这个精心制作的 Doctrine2 深入网站上阅读更多关于关联和级联问题的信息。
hibernate - JPA @ManyToMany 关系、@JoinTable 和 @JoinColumn @OrderBy
表_A
- ID
- 种类
表_B
- ID
通过使用这些关联的多对多表有一个 REF 表
TABLE_REF
- 援助
- 出价
我正在使用 B.getAs() 获取数据
我想获取 As OrderBy TABLE_A.SORT 字段。为此,我尝试添加 OrderBy,但是它无法访问与 B 邻居 A 相关的 ORDER 字段。
这就是为什么,我想如果我也可以将 SORT 字段加入到 REF 表中,我可以在 B 的关系图中使用 @OrderBy(clause="ORDER") 参数。
但是几个小时我找不到任何解决方案。
这是我用于映射的代码:
表_A:
表_B:
我到底想要什么, TABLE_B.getAllPages() 由 TABLE_A.DISPLAY_ORDER 排序
任何关于在hibernate中为傻瓜映射关系的出色资料都适合我。
hibernate - JPA/Hibernate 中的条件/复合 JoinColumn
在我的一门课中,比如说位置,我有这样的东西:
魔术师有变量的地方
现在我想修改 getter 注释,以便只获取 active 为 true 的魔术师。
我怎样才能做到这一点?
感谢您的关注。
hibernate - Hibernate:JoinColumn 中的 referencedColumnName 被忽略
我有两个表 FOO(包含对 BAR 中条目的引用)和 BAR 映射如下:
Foo.class:
酒吧类:
执行 HQL 时:
生成的sql是
当我在寻找 SQL 时:
是否有原因为什么 referencedColumnName 似乎被忽略了(因此使用了默认的 PK)。它是否必须引用 ID 列?
这是唯一一个不按 ID 列映射的表,我尝试将 ID 和 BARREF 作为 ID 列,但出现错误:“列数错误。应该是 2'
由于 Criteria 的限制,我必须为此查询使用 HQL,并且无法更改数据库架构。
list - 游戏框架!两个模型之间的关系
我必须编写一个 Web 应用程序。用户必须能够创建包含问题列表的问卷(因此也可以创建问题)。
我已经创建了 Questionnaire.java 和 Question.java 并且我已经找到了将列表与问卷链接的各种方法,例如:OneToMany/ManyToOne 方式,使用映射,有或没有 JoinColumn,有 Embeddedable , EmbeddedId.. ..
我知道这些应该可以工作,但是每次我尝试创建调查表时它都可以工作,并且每次我尝试添加问题时,它都会出现指针或 SQL 查询错误。
我没有把我的代码放在这里,因为我尝试了很多方法都没有帮助。这都是我试图找出的解决方案之间的混合。
如果有人知道一种可行的方法,并且可以简要地向我解释该方法,那将非常好,因为我已经把所有可能性都混在一起了。
感谢您的回答。
awk - AWK 加入特定列上的两个文件
我正在尝试在其中一个列上加入两个文件,输出应该是第二个文件的列和第一个文件中的一些列。
例如我的第一个文件是:
subscriberid unsubscribetime unsubscribeip listid statid unsubscribed
我的第二个文件是:
listid statid listname ownername owneremail createdatesubscribedidbouncetypebouncetimebouncerule
我需要将它们加入到“statid”列中,该列在第一个文件中排在第 5 位,在第二个文件中排在第 2 位。之后从第一个文件中添加第 2、第 3 和第 6 列。输出应该是:
listid statid listname ownername owneremail createdatesubscriberidbouncetypebouncetimebouncerule unsubscribetime unsubscribeip unsubscribed
我无法理解语法,但我使用的是这个命令:
我认为它会给我 file2 列,因为“print $0”和第二列表单文件一设置为 a[$5]=$2,但它只输出 file2 列。
请问我哪里弄错了?如何将第 2、第 3 和第 6 列从 file1 连接到 file2?
非常感谢任何帮助/解释!
此示例中的两个文件只有一行
java - 在选择查询中使用 JoinColumn 字段
我的主要实体类具有以下字段,其中有一个引用患者实体类的字段 finid。:-
患者的实体类:-
现在我需要搜索与给定 finid 匹配的患者关系。谁能分享一下这个方法?
java - 有什么方法可以正确生成多个模式的 JPA 实体?
我有一个大数据库,分为几个模式。从 Eclipse 向导(JPA 工具)我生成了一个模式的 JPA 实体,但是有一些表依赖于其他模式中的其他表,问题是这些实体是这样创建的:
我认为它必须以这种方式生成:
第二种方法比第一种更正确吗?有没有办法以第二种方式自动生成 JPA 实体?
java - 非主键列的 OneToOne 关系
当我查询与另一个实体具有 OneToOne 关系的实体时遇到问题。这是场景:
数据库表:
测试数据:
实体:
调用:
调用后,休眠的日志显示:
如您所见,连接是错误的,因为将 users.email 与 people.id ( user1_.email=person2_.id ) 进行比较,因此它返回的User没有对应的Person。
关于如何解决它的任何想法?
非常感谢 !!