Hibernate不是通过主键加载关联的实体

时间:2017-08-14 16:05:32

标签: java oracle hibernate jpa

我有2张桌子(为了这个问题,我真的很简单):

Book {
  id Integer,
  name String,
  author_id Integer
}

Author {
  id Integer,
  fullName String
}

现在我需要保存Book,但我没有author_id,我只有作者fullName

我可以按名称获取作者,然后执行book.set(thatAuthor),但我在许多类中有更多字段,我必须填写所有这些对象,并且它的代码比我想要的多,特别是因为我使用map-struct映射所有内容然后我只想调用persist并完成它,但我不能,我必须手动设置这些字段。

问题:是否有可能告诉Hibernate这样做?我有实体类填充数据(作者设置fullName)并且它是唯一的,所以如果Hibernate尝试这样做,他只会找到1个结果,没有问题。

我想到了这样的功能:Hibernate看着这个类。它看到某些字段已设置,而其他字段则未设置。它需要设置所有字段并将它们全部放在where clause中(在我的情况下,它只是作者fullName)并尝试查找单个结果,否则抛出异常。

不确定你是否能理解我,尽我所能。不要因为这个问题而讨厌我,我所能找到的就是做我做的事情,手动加载对象。如果我可以通过提出这个问题来避免大量代码 - 为什么不尝试?

0 个答案:

没有答案