jpa 之自定义中间表

2018-07-22 16:24:52 +08:00
 vansl

我发现 jpa 在自己创建一个中间表的时候,很多注解都失效了。
比如无法自己设置一个主键,这个还好理解,使用联合主键。
但是 @CreatedDate 这个注解也失效是为什么呢?该怎么解决呢
附上代码:

/* 课程的学生中间表 */
@Table(name = "t_course_student")
@Entity
@IdClass(CourseStudentKey.class)
@EntityListeners(AuditingEntityListener.class)
public class CourseStudent {
    /* 创建时间 */
    @Column(name = "created_at")
    @CreatedDate
    private Long createdTime;
 	...
}

失效指的是无法在插入数据的时候自动带上时间了,created_at 这个字段为空。

2369 次点击
所在节点   科技
3 条回复
vansl
2018-07-22 16:49:23 +08:00
我发现 jpa 会自动忽略自己定义的字段,那么这种自定义中间表是不是只能另写 sql 语句或者数据库函数操作了。
wdlth
2018-07-22 18:49:45 +08:00
是不是少了 @EnableJpaAuditing
vansl
2018-07-22 18:54:16 +08:00
@wdlth 添加过了。其他非中间表加这个字段是没问题的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/473084

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX