我的表a和表b没有关系。但是表a、表bMap了实体,实体之间没有关系。假设表Map如下。
@Entity
@Table(name = "tableA")
public class TableA
@Entity
@Table(name = "tableB")
public class TableB
表a
ida,参考号,模式,类型
表b
idb,帐号,sechema,类型
我需要从表B中得到给定“ref\u no”的“accountno”,它具有相同的“sechema”和“type”。我可以在实现crudrepository的repository类中使用下面的本机sql查询来获取“accountno”。
@Query(value = "SELECT b.accountno FROM DB.tableA as a INNER JOIN DB.tableB as b ON b.sechema = a.sechema AND b.type = a.type WHERE a.ref_no= ?1", nativeQuery = true)
Integer findByRefNo(String refNo);
有人能帮我克服这个问题吗,因为使用本机查询时,如果db name不一样,我需要更改。
我试过下面的,但它给了我错误。
@Query(value = select b.accountno from TableA a join TableB b where b.sechema = a.sechema and b.type = a.type and (:refNo is null or a.refNo = :refNo)")
Integer findByRefNo(@Param("refNo") String refNo);
1条答案
按热度按时间dly7yett1#
如果您使用的是hibernate 5.1+,则hql中的查询几乎相同:
更多信息:1,2