我在一对多关系中有两个实体。创建、更新和删除都按预期工作。但是,当我从数据库中读取实体时,关系字段被保留为空集,而不是包含数据库中的对象。
这两个实体是:
@Entity
@Table(name = "point_in_time")
class PointInTime(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long,
val title: String,
val note: String
) {
@OneToMany(mappedBy = "symptom", cascade = [CascadeType.ALL], fetch = FetchType.EAGER)
var symptoms: Set<Symptom> = emptySet()
@field:Column(updatable = false)
val createdAt: Instant = Instant.now()
}
个字符
仓库是一个简单的JpaRepository,定义如下:
@Repository
interface PointInTimeRepository : JpaRepository<PointInTime, Long>
型
但是对象从对存储库调用以下方法返回
repository.findByIdOrNull(id)
型
只有PointInTime.symptoms
的空集合
我必须添加什么才能正确填充symptoms
字段?我特别困惑,因为创建和更新这个字段可以正常工作,并且持久化在数据库中。
1条答案
按热度按时间xhv8bpkk1#
mappedBy
看起来不正确:字符串
mappedBy
告诉Hibernate查看Symptom类中的symptom
属性。但在您的情况下,它应该查看pointInTime
字段而不是symptom
。型
范例:
型