kotlin - 我如何在 kotlin 中与超类建立一对一的关系
问题描述
我有不同的用户类型 Author 和 Commentor。我希望他们OneToOne
与我的 User 类有关系。用户类将包含弹簧安全逻辑。我创建了一个超类 BlogUser 并且我的 Author 和 Commenter 会扩展它。当我尝试设置休眠映射时,我得到:
未知的 mappedBy 在:com.legge.blenderBlog.models.security.User.blogUser,引用的属性未知:com.legge.blenderBlog.models.abstract.BlogUser.user
我的想法错了吗?
@MappedSuperclass
@EntityListeners(AuditingEntityListener::class)
abstract class BlogUser(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0,
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="USER_ID")
val user: User
) : DateAudit()
这是我的 Author.kt
@Entity
@Table(name = "author")
class Author(user:User
): BlogUser(user = user)
这是用户类的一部分
@Entity
@Table(name = "sec_user", uniqueConstraints = [(UniqueConstraint(columnNames = arrayOf("username"))), (UniqueConstraint(columnNames = arrayOf("email")))])
open class User(
....
@OneToOne(fetch=FetchType.LAZY, mappedBy="user")
var blogUser: BlogUser?,
...
) : DateAudit()
这是日期审计
@MappedSuperclass
@EntityListeners(AuditingEntityListener::class)
@JsonIgnoreProperties(value = ["dateCreated", "dateUpdated"], allowGetters = true)
abstract class DateAudit : Serializable {
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "date_created", nullable = false, updatable = false)
@CreatedDate
var dateCreated: Date = Date()
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "date_updated", nullable = false)
@LastModifiedDate
var dateUpdated: Date = Date()
}
解决方案
推荐阅读
- c++ - return 在 cin 语句之前结束程序
- android - Lint 警告 strings.xml 中被覆盖的字符串未使用
- c++ - 为什么我收到“标识符未定义”错误?
- awk - 我的 awk 脚本中存在问题。-condition:在 awk 中使用变量。- 目标:在文本中打印特定列开始的计数变量
- python - 绝对导入在项目中无法正常工作
- mysql - 无法对简单的 CASE 语句进行 ALIAS
- minecraft - 如何在 Minecraft 基岩版中指定计时功能?
- javascript - 如何在Angular中将blob数据作为文件读取?
- linux - 为什么命令“react-native run-android”在我的 Linux 发行版上不起作用?
- ada - 在 Microbit V1 上使用 Ada 读取 i2c 传感器数据