【发布时间】:2018-06-27 09:44:23
【问题描述】:
我现在有 2 个实体,一个是 POST,另一个是 POST_DETAIL。 POST_DETAIL 存储POST 的不同翻译。
(简化)POST 架构:
- ID NUMBER
(简化)POST_DETAIL 架构:
- ID NUMBER
- REF_ID NUMBER # FK to POST.ID
- LANG VARCHAR
- TITLE VARCHAR
我希望仅在 POST 中使用 Hibernate 注释(比如英语)POST_DETAIL 之一
class Post {
...
// annotations
private PostDetail postDetailEn;
}
感谢任何帮助
编辑: 我希望做类似的事情
class Post {
...
@OneToOne(mappedBy = "post")
@JoinColumn(name = "ID", referencedColumnName = "REF_ID",
insertable = false, updatable = false)
@Where(clause = "POST_DETAIL.LANG = 'EN'") // not working
@WhereJoinTable(clause = "POST_DETAIL.LANG = 'EN'") // not working
private PostDetail postDetailEn;
}
class PostDetail {
...
@OneToOne
@JoinColumn(name = "REF_ID", insertable = false, updatable = false)
@Where(clause = "LANG = 'EN'") // not working
@WhereJoinTable(clause = "LANG = 'EN'") // not working
private Post post;
@Column(name = "REF_ID")
private Long refId;
@Column(name = "LANG")
private String lang;
}
但是hibernate记录的sql没有显示where子句
编辑:例如: 数据库中的记录
+-----------+ +-----------------+ +-----------------+
| Post (#1) | | PostDetail (#1) | | PostDetail (#2) |
+-----------+ | refId: 1 | | refId: 1 |
| lang : EN | | lang : EN |
+-----------------+ +-----------------+
我想得到
Post(id=1,
postDetail=PostDetail(id=1,
refId=1,
lang=EN))
【问题讨论】:
标签: java hibernate one-to-one