解决办法如下:
@ManyToOne
(cascade = CascadeType.REFRESH, targetEntity = TABLE_A.
class
)
@JoinColumnsOrFormulas
(value={
@JoinColumnOrFormula
(column=
@JoinColumn
(name =
"A_ID"
, referencedColumnName =
"ID"
, nullable =
true
, insertable =
false
, updatable =
false
))
,
@JoinColumnOrFormula
(formula=
@JoinFormula
(value=
"'ABC'"
, referencedColumnName =
"COLB1"
))
})
重点就是@JoinFormula的使用(和@JoinColumn类似):
value指明对应列的值(这里也可以写SQL表达式),
referencedColumnName指明列的名称
由于关联关系多于一个,所以,需要使用@JoinColumnsOrFormulas、@JoinColumns、@JoinrFormulas这样的标签,将多个条件包括进来。
参考:http://www.oschina.net/question/54953_45536