public class A implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Long id; @Formula(value = "(select cs.bid from B cs where cs.id=id and cs.bid=? )") @JsonIgnore private Long bid; .......
字段bid 是B表的 ,所以我在 A表 建立了一个虚拟列 ,可以根据 这个字段做查询.
我是想 如何 将 bid 传到
@Formula(value = "(select cs.bid from B cs where cs.id=id and cs.bid=? )") 问号的地方
这里来 作为一个条件 ,然后可以查询? 不知大神们 有什么建议 或者好的方法
参考Hibernate Parameter Binding Examples:
String hql = "from Stock s where s.stockCode = ? and s.stockName = ?"; List result = session.createQuery(hql) .setString(0, "7277") .setParameter(1, "DIALOG") .list();
关键是,我这里 做查询的时候 使用的 JPA .
就是直接把 查询条件 放到封装好的function ,不能自己写SQL语句,所以 就不能像你那样写了
在@Formula Sql中 已经有了 cs.id=id 这个条件 其实已经和A关联了,那 cs.bid这个自身字段可以不用了。