【发布时间】:2018-07-31 23:56:47
【问题描述】:
在这段代码中,我保存了主对象和该对象的外键。 我打印出应该是完全相同的对象的“实体”和“事物”。但他们不是。为什么?
thingList.forEach(entity -> {
System.out.println(entity);
// Save if the foreign key exists and isn't already saved in the database
if(entity.ForeignKey() != null && ForeignKeyRepository.findOne(entity.ForeignKey().getId()) == null)
{
ForeignKeyRepository.save(entity.getForeignKey());
}
Thing thing = thingRepository.save(entity);
System.out.println(thing);
});
【问题讨论】:
-
因为它们不一样。如果它是一个新对象,您的对象将被替换为休眠托管实体,它是您实际实体的代理实例。
-
@M.Deinum 实际上是相反的。如果已经存在一个与返回的 id 相同的托管实体。
标签: java database spring spring-data spring-data-jpa