gpt4 book ai didi

spring - @CreationTimestamp 和 @UpdateTimestamp 在 Kotlin 中不起作用

转载 作者:行者123 更新时间:2023-12-02 03:33:53 25 4
gpt4 key购买 nike

这是我的标签和帖子实体类:

@Entity
class Tag(
@get:NotBlank
@Column(unique = true)
val name: String = "",
val description: String = ""
) {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
val id: Int? = null


@ManyToMany(mappedBy = "tags")
val posts: MutableSet<Post> = mutableSetOf()

@CreationTimestamp
lateinit var createDate: Date

@UpdateTimestamp
lateinit var updateDate: Date

fun addPost(post: Post) {
this.posts.add(post)
post.tags.add(this)
}


}



@Entity
class Post(
@get:NotBlank
var name: String = "",
val content: String = ""
) {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
val id: Int? = null
@ManyToMany
@Cascade(CascadeType.ALL)
val tags: MutableSet<Tag> = mutableSetOf()

@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
lateinit var createDate: Date

@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
lateinit var updateDate: Date


fun addTag(tag: Tag) {
this.tags.add(tag)
tag.posts.add(this)
}
}

查询:

val post1 = Post( "Post 1", "Post 1 content");
val post2 = Post( "Post 2", "Post 2 content");
var tag = Tag( "news", "Tag description")
post1.addTag(tag)
post2.addTag(tag)
em.persist(post1)
em.persist(post2)
em.remove(post1)
em.flush()

但是,createDate 和 updateDate 返回 null(标签和帖子): enter image description here

我将此代码转换为 Java,它运行良好

Kotlin 版本:1.2-M2

springBoot版本:'2.0.0.M7'

最佳答案

问题可能存在于以下事实:这些注释并不限于它们应该注释的内容。这意味着 kotlin 并不确切知道将它们放在最终字节码中的何处。

要获得与 java 生成的字节码相同的字节码,您需要指定相关注释的注释目标:

@field:CreationTimestamp
lateinit var createDate: Date

关于spring - @CreationTimestamp 和 @UpdateTimestamp 在 Kotlin 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47617726/

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