gpt4 book ai didi

spring - 构造函数只接受引用实体的 ID,但 getter 返回实体本身 - 可能吗?

转载 作者:行者123 更新时间:2023-12-03 14:41:15 26 4
gpt4 key购买 nike

让我们假设,我有一个简单的关系 StudentTeacher实体
我正在使用带有 kotlin-jpa 插件的 Spring Boot,所以数据类应该可以正常工作:

data class Student(
@Id
@GeneratedValue(strategy = IDENTITY)
val id: Long = null,

@OneToOne(fetch = FetchType.LAZY)
var responsibleTeacher: Teacher,
// ... other props
)

data class Teacher(
@Id
@GeneratedValue(strategy = IDENTITY)
val id: Long = null,

val name: String,
// ... other props
)
我的问题:构造 Student 的实例,我总是需要一个实例(已经持久化了) Teacher以及。因为我只有 ID手头的老师,我首先需要获取完整的 Teacher实体,然后将其传递给 Student 的构造函数:
val responsibleTeacher = getTeacherFromDB(teacherId)
val student = Student(responsibleTeacher)
我想要的是,只通过 Teacher构造函数中的 ID,但仍然可以查询完整的 Teacher实体来自 Student当调用 getter/property 时。
data class Student(
@Id
@GeneratedValue(strategy = IDENTITY)
val id: Long = null,

@Column(name = "responsible_teacher_id")
private var responsibleTeacherId: Long,

// ... other props

// pseudo-code, doesn't work!
// Should query the [Teacher] Entity by [responsibleTeacherId], specified in constructor
@OneToOne(fetch = LAZY)
var responsibleTeacher:Teacher
)
我搞砸了将近一天,但找不到任何可行的解决方案。有没有?

最佳答案

为此,您可以使用代理,您可以通过调用 entityManager.getReference(Teacher.class, teacherId) 来检索该代理。

关于spring - 构造函数只接受引用实体的 ID,但 getter 返回实体本身 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65917301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com