当前位置: 首页 > 面试题库 >

我可以仅使用ID设置实体关系吗?

孙池暝
2023-03-14
问题内容

我有一个JPA(hibernate)实体:

@Entity class Transaction {

  @ManyToOne
  private Room room;

}

当我创建一个new时Transaction,我知道Room它应该引用的ID
(但没有Room对象)。我可以Transaction仅使用此信息以某种方式创建并保留,还是真的需要:

Room room = em.find(roomId, Room.class);
em.persist(new Transaction(room, ...));

问题答案:

您可以EntityManager.getReference()用来获取相关实体的代理,而无需访问数据库。此代理是延迟初始化的,仅当您查询实体以外的ID时,才会初始化该代理。



 类似资料:
  • 我试图坚持两个实体,它们有一对一和多对一的关系。 我正在尝试将表单集合嵌入到表单中。 我有一个多对一相关的实体,每次我创建一个新的课程简历,它与Candidat列相关candidat_id_id为空。 除了数据可数据中的Candidat id之外,只有实体Curendar umVitae被成功创建和持久化。 简历表 id|titre|candidat_id_id|id_education cand

  • 之前我用的是实时DB,现在需要改用fiRecovery 当我在实时数据库中写入数据时,我使用了这种方法。 所以数据会这样显示 但是当我使用消防商店时,它将显示这一点 我能否将< code > u 93 aclsjjilqbdfck 2 ST 更改为< code > 02 nfe 2 jzidgzxzwypmcwq 20 qwq 93 ,如果可以更改,我该怎么做? 这是我的代码。

  • 两个表格: 实体类(基本结构): SQL查询和结果: JPQL查询: *我知道我在上面给定的结构中没有它,但我想知道如何正确操作。我该如何从“ManyToOne”、“OneToOne”等选项中进行选择。 如何修改实体类和JPQL查询以获得与SQL查询相同的结果?我一直在尝试各种各样的事情,但都不管用。它不允许我创建两个具有相同列名的字段,也不允许我将字符串定义为@JoinColumn。我几乎成功了

  • 考虑到我的特殊使用模式,我试图找出这种方法的错误之处: 我读过几篇关于这个主题的文章,听起来好像你不想在equals/hashCode中使用DB生成的序列值,因为它们在对象被持久化之前不会被设置,而且你不想让不同的瞬态实例都相等,否则持久层本身可能会崩溃。 但是对于瞬态对象,使用默认的Object equals/hashCode(实例相等),然后使用生成的@Id有什么问题吗? 我能想到的最糟糕的事

  • 问题内容: 我用来测试我正在处理的某些网页。效果很好,但是我需要执行一些跨域请求。这就需要设置一个标题,其中包含允许页面访问的域。 有没有一种简单的方法可以使用SimpleHTTPServer设置标头并提供原始内容?标头在每个请求上都相同。 问题答案: 这有点hack,因为它会改变行为,但是我认为它比复制和粘贴整个文件要好一些。 我的方法在子类中进行覆盖,并在其中调用,然后再调用超类的。 也不是1

  • 在QueryDSL中有没有一种方法可以插入JPA实体而不直接使用JPA提供者? 我的用例问题如下。我使用Hibernate和两个实体之间的连接表映射。 这样的事情可行吗?