我有这个代码
PostId UserId PostTime
7 3 2018-02-27 02:52:21
8 3 2018-02-27 02:52:38
9 3 2018-02-27 02:52:57
10 3 2018-02-27 02:53:52
11 3 2018-02-27 02:54:01
在数据库上 邮政表
PostContentId PostId Content MediaUrl ContentType
1 7 text post noMedia 1
2 8 photo post image/TueFeb27025238MST2018_1519725158056.jpg 2
3 9 video post video/TueFeb27025257MST2018_1519725177971.mp4 3
4 10 text post noMedia 1
5 11 photo post image/TueFeb27025401MST2018_1519725241249.jpg 2
发布内容表
PostId
问题是
当post table
上的PostContentId
= post content table
PostContentId
时,它会成功返回数据NullPointerException
则返回@JoinColumn(name = "PostId",referencedColumnName = "PostId")
我添加PostId
加入PostContentId
而不是#content-header
,但问题相同!!
答案 0 :(得分:0)
我认为你的实体之间的关系没有正确映射。
复制此示例代码示例1:映射外键列的一对一关联
// On Customer class:
@OneToOne(optional=false)
@JoinColumn(
name="CUSTREC_ID", unique=true, nullable=false, updatable=false)
public CustomerRecord getCustomerRecord() { return customerRecord; }
// On CustomerRecord class:
@OneToOne(optional=false, mappedBy="customerRecord")
public Customer getCustomer() { return customer; }
正如您所看到的那样,注释@JoinColumn
通常放在表示获得 FOREIGN_KEY 的表的实体中。在您的情况下,外键似乎放在指向POST的POST_CONTENT中。
您必须将@JoinColumn
放入班级PostsContentsEntity
。
在示例之后,PostsEntity
应该使用PostsContentsEntity
像这样的东西
// On PostsContentsEntity class:
@OneToOne(optional=false)
@JoinColumn(
name="POST_ID", unique=true, nullable=false, updatable=false)
public PostsEntity getPostsEntity() { return postsEntity; }
// On PostsEntity class:
@OneToOne(optional=false, mappedBy="postsEntity")
public PostsContentsEntity getPostsContentsEntity() { return postsContentsEntity; }