问题标签 [mappedby]

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 回答
610 浏览

java - 休眠用户消息关系

如何在 Hibernate 实体类中创建下一种关系?用户通过创建消息(发送者、接收者、消息)向另一个用户发送消息。数据库看起来像这样:

实体类必须是什么样子?

映射...什么?我需要找到所有消息,其中当前用户作为发送者 OR/AND 接收者存在。(“AND”,因为用户可以向自己发送消息)。

0 投票
1 回答
5987 浏览

java - 如何避免在hibernate中进行脏检查

我有一个实体调用公司和另一个实体调用令牌。

1 公司将拥有许多代币。

所以在我的公司实体中,我将有如下内容:

但是,在返回过程中我会有一些逻辑,它会在返回之前更改令牌列表,如下所示:

由于我更改了令牌列表中的值,因此,每次我使用休眠从数据库中选择公司对象时,公司表都会自动更新。

根据我的理解,这是一种休眠脏检查的行为。所以当 Hibernate 检测到它有什么变化时,它会更新数据库。

有什么办法可以避免这种情况吗?例如,也许只是调用现有的休眠函数,这样休眠就会知道令牌列表是脏的,它不会进行更新。

是的,我知道 getTokens() 中的过滤逻辑不合适。正确的过滤逻辑不应应用于实体级别。但是由于目前使用这种方法的地方很多,如果我在这个实体级别更改,那么会影响其他地方,如果我也更改其他地方,则需要重新重新测试整个应用程序。

因此,我试图在这方面找到更好的方法。

0 投票
1 回答
1645 浏览

java - hibernate和mappedBy:是否可以自动设置外键而不设置对象之间的双向关系?

欢迎,

我有 2 节课:对话和提问。一次对话有很多问题。

对话.java:

问题.java:

持久性.xml:

现在在 Main.java 我试图用两个问题创建对话:

在 insertRecords() 我正在创建 conv 和两个问题。每个问题都设置了对话:

接下来,创建一个包含这 2 个问题的问题列表并将其设置为 conv questions list:

它工作正常,因为数据被插入到两个表中,并且外键 CONVERSATION_CONV_ID 被填充:

对话表

问题表

但是,当我删除问题中的设置对话时,行:

外键设置为 NULL。为什么?我们已经在对话问题列表中添加了两个问题:

,所以hibernate应该知道这两个问题的会话外键是什么(因为它们位于指定的会话问题列表中)。那么是否可以避免为每个问题设置 Conversation 并且只将问题添加到 Conversation 的问题列表中?我应该如何配置实体来做到这一点?或者也许这是不可能的,我们总是需要设置它的两个方向?

0 投票
1 回答
351 浏览

symfony - symfony 学说 2 OneToMany - 与反边场错误的关联

我想连接两个实体

某些 DishCategory 中的菜

带有 DishCategory (id) 的菜 (category_id)

有一个错误:

关联 AppBundle\Entity\Dish#categoryId 指的是不存在的反边字段 AppBundle\Entity\DishCategory#category_id。

这些是我的实体类

菜实体

DishCategory 实体


在 DishController 中,我将此函数运行到存储库

这就是 DishRepository 的样子

我已经阅读了很多关于 OneToMany 的教程,但我仍然找不到问题出在哪里:(

仍然出现错误:

关联 AppBundle\Entity\Dish#categoryId 指的是不存在的反边字段 AppBundle\Entity\DishCategory#category_id。

:(

0 投票
0 回答
31 浏览

grails - Grails v3.3.9 GORM 缺陷 - 一对多与mappedBy,更新可能失败

Grails v3.3.9 - 影响实时/开发和集成测试

我的情况是,我有一个集成测试在构建手动创建的记录和从数据库中找到的记录时一直失败,但是如果您在测试中链接两个手动创建的记录,则可以工作。

我一直在尝试一千次调整,并确保 GORM 正在按照文档中所说的进行。

我已经缩减了我的代码并构建了一些更简单的东西,它在结构上看起来像我的真实东西,但基于 GORM 用户指南中的 Airport/Flights 模型(请参阅用户指南中的第 5.1.2

像这样声明抽象基类

机场.groovy

声明一个扩展它的具体类,您可以使用:

UkAirport.groovy

声明具有两个基本相同类型的属性的 Flight 实体

现在是集成测试;有几点需要注意。

1)我在设置中预先创建了一个 UkAirport(没有为它声明航班) 2)我在实际测试中创建了两个手动 UkAirports - Gatwick 和 Stansted 并保存这些 3)我设置了两个航班 - 一个从 Gatwick 到 Stansted,和从我通过执行 UkAirport.get() 找到盖特威克机场以预先保存曼彻斯特

这是奇怪的事情。如果我按此处所示运行此测试 - 它会通过,因为我断言没有飞往曼彻斯特 ( assert manchester.inboundFlights.size() == 0) 的现有航班。

但是,如果您将该断言注释掉并重新运行,则测试将失败并且它将声明manchester.inboundFlights.size()等于 2 -

如果我使用调试器也是一样的——如果在执行 flight2.save() 之前停下来看看曼彻斯特,测试将起作用——如果你在 flight2.save() 之后设置断点,则 manchester.inboundFlights 显示 2错误的条目。

有人可以确认这确实是一个缺陷,我会提出它(代码中的临时工作 - 是访问从数据库中选择的实体 - 然后在你周围建立任何关系之前)。

我的Github 项目在这里,所有这些的集成测试在这里

这是我之前与Stack Overflow 相关的问题——我将对其进行更新,因为它基本上归结为上述问题。

0 投票
1 回答
133 浏览

hibernate - 休眠 @OneToOne 映射

我面临以下问题:我有一个表 A 和 B 与表 A 的外键。一个实体具有以下字段:A:

B 实体有一个字段(除其他外):

如何将B类型的字段添加到A实体?A:

此解决方案不起作用,查询语句后 A 实体中的字段 B b 为 NULL。

0 投票
1 回答
141 浏览

java - “mappedBy 引用了一个未知的目标实体属性” Hibernate, ManyToMany

我尝试使用 Maven 框架为我的程序创建一个数据库。但是,我遇到了这种错误。

这是我对 DokterModel 和 Jadwal_JagaModel 的以下程序

DocterModel.Java

Jadwal_JagaModel.Java

我知道问题是在DokterModel.Java中的 mappedBy ,但是,我不确定它应该是什么以及 mappedBy 如何工作?这是我第一次使用 Hibernate,因此感谢任何形式的帮助。

0 投票
1 回答
94 浏览

java - 映射到许多值

我有这个错误

mappedBy 引用了一个未知的目标实体属性

我知道问题是我应该将 mappeby 值设为“person”而不是 person1 和 person2,但问题是我在类 Contact 中有 2 个类型为 person (person1,person2) 的变量我不能将它们命名为相同姓名 !

在类人

在课堂上联系

我的 MCD: 在此处输入图像描述

0 投票
1 回答
730 浏览

spring-boot - Spring Boot Mapping 不起作用:MappedBy 引用了一个未知的目标实体属性

我尝试运行我的 Spring Boot 应用程序,但我的控制台上不断出现这些错误。我尝试了其他开发人员在 StackOverflow 中发布的所有解决方案,但都没有解决。我有一个商家类和帐户,它们链接在一起。我有另一个具有相同代码的项目,他运行顺利这里是类: 帐户

商人

登录控制台

0 投票
1 回答
161 浏览

hibernate - Hibernate 自引用 ManyToMany 加入带有注释的单个列表

我面临一个类似于 Tinder 匹配逻辑的问题,所以我以它为例。

在此处输入图像描述

我的用户可以通过具有两个用户引用的公共匹配实体在彼此之间进行“匹配”。

我喜欢对用户属于两个用户实体对象的所有匹配项进行单一引用,但是我需要选择(假设使用“mappedBy”)关系的另一端,即第一个或第二个用户。

我希望列表匹配项填充以下查询表示的对象,即与用户相关的所有匹配项,与列无关。

无论我是被邀请还是被邀请的人,都可以为我作为用户提供与我相关联的任何连接对象。

有没有办法使用 Hibernate 注释来实现它?