使用仅具有 id 值的实体保存外键

2023-12-01

如果我有两个休眠实体,例如:

@Entity
class Company {
     @Id
     Integer id;
     String name;
}

@Entity
class Person {
     Integer id;
     String name;
     @ManyToOne
     Company company;
}

我有一个已经存储的公司,例如Company(id:1, name:"Acme")

我可以创建一个仅使用公司 ID 来引用该公司的人员,而不是加载整个记录,例如:

Session session = SessionFactory.openSession();
Company acme = new Company();
acme.setId(1);
Person person = new Person();
person.setName("Manuel");
person.setCompany(acme);

session.save(person);

它只保存参考信息,还是还更新公司name=null?


是的,你可以做到。

它只保存参考信息,还是还更新公司 名称=空?

默认情况下cascade,这样的话,Hibernate 将什么都不做。所以答案是:它只保存一个外键。

最有效的(也适用于 JPA)方法是使用session.load(Company.class, 1)。它返回一个代理而不向数据库发出任何请求。但是,当然,你需要为此举行一次会议。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用仅具有 id 值的实体保存外键 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef

随机推荐

  • 在嵌套类中声明固定长度的数组

    我有一个 A 类 它有一个嵌套的 B 类 A 类将创建 B 类的 n 个 运行时参数 实例 在 A 的构造函数中 在需要在运行时进行计算之后 我计算一个大小 假设为 s 现在 每个 B 类都会保存一个大小为 s 的数组 但是 我不允许使用
  • Django Rest 框架和 JSONField

    给定一个 Django 模型JSON字段 使用序列化和反序列化它的正确方法是什么Django 休息框架 我已经尝试过创建自定义serializers WritableField并压倒一切to native and from native f
  • 在数字字符串中添加逗号[重复]

    这个问题在这里已经有答案了 我的程序中运行一个值 该值最后会四舍五入到小数点后两位 如下所示 print Total cost is 0 2f format TotalAmount 有没有办法在小数点左边每 3 位插入一个逗号值 e g 1
  • 如何停止“setInterval”[重复]

    这个问题在这里已经有答案了 我该如何停止和开始setInterval 假设我有一个textarea 我想停下来setInterval聚焦并重新启动setInterval模糊 使用 jQuery 你必须存储timer id启动它时的时间间隔
  • 在 SwiftUI 中一一叠加视图

    我有以下带有一个结构和两个视图的代码 点击第一个屏幕覆盖按钮时 我想显示第二个屏幕覆盖并隐藏前一个 依此类推 任何帮助表示赞赏 import SwiftUI struct ContentView View var body some Vie
  • 将向量转换为具有多列的数据框

    我有一个向量 如下所示 99 Hershey 6 7 B 7 4 7 B 562 M Consumer Packaged Goods 100 Costco 6 7 B 14 117 3 B Retail 为了简单起见 我只提到了 700 个
  • 为静态Web应用程序购买域名

    I have deployed a static web application Gatsby now I want purchase a domain If the web was deployed to Azure App Servic
  • 如何选择/取消选择所有复选框?

    我有一个带有图像视图 文本视图和复选框的适配器 以及用于选择所有复选框的 全选 按钮 我搜索了很多关于如何执行此操作 选择所有复选框 的信息 但它不起作用 谁能解释更多我应该做什么 拜托 我必须做这件事紧急 这是我的适配器 Public c
  • 将 SQL 转换为 HQL [关闭]

    Closed 这个问题是无关 目前不接受答案 我正在尝试将以下 SQL 查询转换为 HQL 但遇到了一些问题 逐行直线转换不起作用 我想知道是否应该在 HQL 中使用 Inner Join SELECT UNIX TIMESTAMP cos
  • 为什么在安装 .NET Core 2.1.3 时出现 HTTP 错误 502.5

    我为运行 Windows Server 2016 的新计算机安装了 NET Core 版本 2 1 3 我将其托管在 IIS 10 中 但它给了我错误 502 HTTP 错误 502 5 进程失败 此问题的常见原因 申请进程无法启动 申请流
  • TYPO3 StoragePid 和当前

    我构建了一个简单的注释 extbase 扩展 我想将其与打字稿一起包含在项目扩展 也是 extbase 中 项目扩展中的流畅代码如下所示
  • UITableViewCell 重用良好实践

    UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath indexPath static NSString CellIdentifi
  • React.js 中刷新时丢失 useState 值

    我正在发送一个id from ProductListing组件 我收到了id using useParams in ProductDetail成分 在ProductDetail组件我正在使用 find 方法查找一个对象 然后将其设置为sin
  • 如何测量图像中的环境光水平?

    我正在考虑制作一个应用程序 使用相机来测量拍摄图像时存在的光量 一些条件行为会根据存在的光线量而发生 即 如果看起来很黑 则显示一条消息 看起来像睡觉时间 我知道这对于由于曝光等原因而存在的实际光量来说是一个相当糟糕的测量 但它不需要非常准
  • ReactJS - 使用重定向组件传递道具

    你应该如何传递 propsRedirect组件而不将它们暴露在 url 中 像这样
  • SFU 的特殊 CUDA 双精度三角函数

    我想知道我将如何使用 cos x 和分别 sin x 在带有 CUDA 的内核代码中 我在 CUDA 手册中查找到有这样一个设备函数 但是当我实现它时 编译器只是说我无法调用设备中的主机函数 然而我发现有两个姐妹函数cosf x and c
  • Nodejs多列独特mongoose的组合

    客观的 为两列创建唯一性 我尝试了什么 这是我的架构 var mongoose require mongoose location table Schema var locationSchema new mongoose Schema lo
  • Leaflet GeoJSON 是否可以在到达目的地之前裁剪线要素?

    有没有一种简单的方法可以缩短 GeoJSON 图层上的线条 我有一条线 它从 A 点到 B 点 我希望这条线在标记的半径附近停止 那可能吗 有点像从线路终点 起点的偏移量 这是一个例子 我有 50 x 50 的图标 但半透明 参见图片 并且
  • getIntent.getExtras.getString() 中的 null 值

    这是我在第一个活动中的代码 Intent i new Intent this OtherScreen class i putExtra id1 first i putExtra id2 second startActivity i 其中第一
  • 使用仅具有 id 值的实体保存外键

    如果我有两个休眠实体 例如 Entity class Company Id Integer id String name Entity class Person Integer id String name ManyToOne Compan