问题标签 [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 投票
2 回答
5320 浏览

java - 连接列返回空值

我正在尝试使用@JoinColumn注释加入一列,但我的列总是返回空值,我不知道为什么。

和成分

@JoinColumn(columnDefinition="integer", name = "blender_id")返回 null 不知道为什么。

0 投票
2 回答
1089 浏览

java - EntityManager 查询无法解析属性

我正在使用 JPA 查询 OracleSQL 数据库。但是,我收到错误:

当我编写以下查询时

文件有此列

我不确定为什么“客户端”字段似乎链接到“CLIEND_ID”。

0 投票
1 回答
659 浏览

hibernate - 如何在休眠中具有复合键的2个表之间进行一对一映射?

我有 2 张表 vanTb 和 vanSiteTb。vanTb 的主键是 vId。vanSiteTb 具有 2 列的复合主键,即。vNum 和 vSiteC。

vanTb 也有 2 列 vNum 和 vSiteC。

这两个表之间存在一对一的关系。

数据库架构来自旧数据库,因此无法更改。

在休眠中,我定义了 2 个实体 bean,即。VanTb.java 和 VanSiteTb.java。

对于 VanSiteTb.java,我使用 @Embeddable 定义了一个新的 java 类。此类的对象在 VanSiteTb.java 中使用 @EmbeddedId 定义。

现在,我想在这两个表之间定义一对一的关系。

所以,

现在要定义一对一的关系,我必须在 JPA 中编写 @OneToOne,但是应该为 @JoinColumn 编写什么,我已经提到了???。

为了从两个表中识别一个唯一条目,我们应该让两个表的 vNum 和 vSite 应该相互匹配。

上面的查询将从两个表中返回一个唯一的行。

请让我知道解决方案。

0 投票
1 回答
27 浏览

spring - JPA - 在 API 中传入 ID 后,从共享相同 ForeignKey 的各种实体中检索记录

考虑以下虚拟数据实体及其定义的关系:

实体业务

实体 GiveMoney

实体随机形式

我省略了最后一个实体 personGivingMoney,因为它只包含一个由 person_giving_money_id 和 name 引用的 Id。

请原谅下划线、可能不正确的可插入/可更新值以及通过不必要的@Column 注释浪费空间

自然地,当我在我的控制器中对 List GiveMoney 执行 getAll 时,它会从它们各自的实体中检索一个完整的列表以及连接的列。

这是 GiveMoneyRepo 中的findByBusiness_id

控制器

正如预期的那样,它会过滤 GiveMoney 列表并返回所有在 api 中保存给定业务 id 的记录,但是它会同时从同一结果集中的 RandomForm 实体和 PersonGivingMoney 实体返回随机记录。我相信这是正常的,因为我刚刚通过 GiveMoney 存储库在 GiveMoney 列表中指定了我的条件,而没有告诉 Spring 如何处理其余的实体/记录。

RandomForm 和 GiveMoney 都将 business_id 作为 ForeignKey,我想在 API 中提供一个业务 id 并检索一个列表,该列表将根据给定的 id 显示来自两个实体的正确记录。简单地说:

FindGiveMoneyByBusiness_Id 和 FindRandomFormByBusiness_id 到一个 JPA 查询和结果集中。

我已经阅读了文档,但显然不够好,因为我确定 Spring JPA 有办法做到这一点,或者我想我可能正在考虑创建一个 nativeQuery?

0 投票
0 回答
562 浏览

hibernate - 一对一关系中的休眠抛出错误

我正在尝试实现一对一的映射,下面是所涉及的实体:

充当复合主键的用户 ID:

车辆实体:

以 UserID 作为复合主键并与 Vehicle Entity 具有一对一关系的 UserInfo 实体:

UserInfo是拥有方实体,因为它具有FK(使用@JoinColumn)并具有UserID复合主键。

当我保存UserInfo对象时,下面是hibernate的sql日志:

休眠:删除表 UserInfo(如果存在)

休眠:删除表车辆(如果存在)

Hibernate: 创建表 UserInfo (ssnID integer not null, full_name varchar(255), VEHICLE_ID integer, primary key (ssnID))

Hibernate: 创建表 Vehicle (vehicleID integer not null, description varchar(255), primary key (vehicleID))

休眠:更改表 UserInfo 添加约束 FK9nx05ha53jhcue5rwks77x0mv 外键 (VEHICLE_ID) 引用车辆

在此之后,它会抛出异常:

我无法理解为什么这会引发异常;我没有插入任何重复的值。

使用@OneToOne 或@JoinColumn 进行映射是否有任何问题?

谁能帮我理解这一点?

编辑:

我创建了一个辅助类来进行实际保存,部分代码片段是:

所以,从 main() 我调用这个辅助方法,并保存实体UserInfo(它有另一个实体Vehicle集)。

请注意我没有保存Vehicle实体,是否需要显式保存?

0 投票
2 回答
1668 浏览

hibernate - 损坏的列映射:OneToOne 单向与两个连接列

我有两个给定的表(posgres),其中包含以下字段(所有大整数):

交易:

  • 交易标识
  • reader_id
  • 阅读器trxref
  • ...

逆转:

  • 逆转
  • 引用
  • 读者ID
  • ...

Transaction 和 Reversal 之间有一个可选的 1:1 关系:Transaction 始终存在;如果交易已撤消,则存在撤消。该关系是通过反向组合外键(reader_id,trxref)完成的。这些表是以这种方式给出的,我需要在 JPA 中映射它们。我需要映射交易中的逆转,我可以在命名查询中导航,即SELECT FROM Transaction t LEFT JOIN t.reversal rv ....

所以我要做的是:


在部署期间,我收到以下异常:

谁能指出我的错?我只是试图删除@JoinColumns并只拥有一个@JoinColumn. 在这种情况下,我可以部署应用程序 - 这表明这是一个奇怪的错误,我并不感到惊讶,如果它是休眠中的一个错误,即使我认为这不是一个非常奇特的用例。(我们在 Wildfly 10.1.0 中使用 Hibernate 5.2.12)。

编辑澄清了映射transaction(reader_id, readertrxref)->reversal(readerid, trxref) 并且这是以这种方式给出的。我需要以这种方式映射它,并且我不能使用 transactionid 作为反向的外键,因为它确实(由于技术原因)在此表中不存在。

0 投票
0 回答
46 浏览

hibernate - 使用@joincolumns 时父实体引用未保存在子实体中

下面是我写的实体类和方法。当我尝试使用 Spring Data JPA 插入实体时,我正在正确设置所有值并且实体正在保存。但是根据我在实体类中做的休眠映射,元数据实体应该有定义实体的引用。但是保存操作我看到元数据表中的定义引用为空。

0 投票
0 回答
109 浏览

java - Nullable JOINCOLUMN 字段瞬态异常 Hibernate

我正在处理spring hibernate一个模型具有foreign key映射的项目,@joincolumn如下所示。

但是,在通过rest api从angular js UI保存这个实体时,我得到了下面提到的异常。

要求:

为了便于阅读,我还从模型和请求中删除了所有其他字段。

例外:

org.hibernate.TransientObjectException:对象引用了一个未保存的瞬态实例 - 在刷新之前保存瞬态实例:

解决方案是什么,我尝试过使用 hibernate nullabletrue 选项。但是没有用!

0 投票
1 回答
40 浏览

jpa - JPA:从与当前 as manytoone 链接的表中接收几列

我是 JPA 的新手,需要一些建议。我有两张表,Car 和 Driver 链接为 ManyTyOne。我会获得 Car 实体,其中包含有关几个司机的信息。现在我只能从驱动程序中获取 driver_id,它看起来像这样,但还需要接收驱动程序名称和姓氏。

类车:

表车SQL:

起初,我认为可以通过以下方式接收司机姓名和姓氏:

但是文档说,@JoinColums 仅适用于复合 fk。请给我一个提示,我该怎么做。

0 投票
2 回答
4468 浏览

java - 使用非主键列的休眠连接

我有两张桌子:

  1. 用户:

    • user_id(主要)
    • ip(唯一)
    • ETC ..
  2. services_to_ip

    • id(主要)
    • 服务标识
    • ip
    • ETC ..

在课堂用户:

使用 MySQL 查询日志,我们得到类似的结果:

在 WHERE 条件下使用“user_id”字段(默认字段是主键 - users.id)(user_id=777)。

如何指定我需要从用户实体中获取“ip”字段的值,而不是“user_id”?

我将不胜感激任何帮助!