http://www.oschina.net/question/54953_45536
两张表结构如下
TABLE_A:
ID, COLA1, COLA2
TABLE_B:
ID, A_ID, COLB1, COLB2
A和B是一对多的关系。
我在B的BEAN上面,通过Anotation建立如下关系。
@ManyToOne(cascade = CascadeType.REFRESH, targetEntity = TABLE_A.class)
@JoinColumn(name = "A_ID", referencedColumnName = "ID", nullable = true, insertable = false, updatable = false)
现在的问题来了,就是在 TABLE_B.A_ID = TABLE_A.ID同时,还要求TABLE_B.COLB1="ABC"。
想请教下大家,这种情况如何处理?如何使用@JoinColumn?
标签:
Hibernate
我想问同样的问题共
0个人想要问同样的问题
补充话题说明»
共有
1条补充说明
- JustForFly:在Hibernate这方面,谁比较有经验,希望指点一二。难道只能用SQL去解决这个问题了。2个月前
按评价排序 |显示最新答案 | 回页面顶部共有1个答案 我要回答»
-
JustForFly 回答于 2012-03-31 11:12 (2个月前)举报
自己终于解决这个问题,分享出来代码,希望也可以帮到其他人。
1
@ManyToOne
(cascade = CascadeType.REFRESH, targetEntity = TABLE_A.
class
)
2
@JoinColumnsOrFormulas
(value={
@JoinColumnOrFormula
(column=
@JoinColumn
(name =
"A_ID"
, referencedColumnName =
"ID"
, nullable =
true
, insertable =
false
, updatable =
false
))
3
,
@JoinColumnOrFormula
(formula=
@JoinFormula
(value=
"'ABC'"
, referencedColumnName =
"COLB1"
))
4
})
value指明对应列的值(这里也可以写SQL表达式),
referencedColumnName指明列的名称
由于关联关系多于一个,所以,需要使用@JoinColumnsOrFormulas、@JoinColumns、@JoinrFormulas这样的标签,将多个条件包括进来。