JustForFly @JoinColumn疑问

http://www.oschina.net/question/54953_45536


JustForFly

@JoinColumn疑问

JustForFly发表于 3-23 15:48 2个月前, 1回/281阅,最后回答: 2个月前 ( 0人收藏此话题, 我要收藏 | 举报)
0
两张表结构如下
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
    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                        })

    重点就是@JoinFormula的使用(和@JoinColumn类似):

    value指明对应列的值(这里也可以写SQL表达式),

    referencedColumnName指明列的名称

    由于关联关系多于一个,所以,需要使用@JoinColumnsOrFormulas、@JoinColumns、@JoinrFormulas这样的标签,将多个条件包括进来。

    有帮助 (0) | 没帮助 (0) | 评论 (0) | 引用此答案


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值