未使用hqlMap的两个表的内部连接

xytpbqjk  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(311)

我的表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);
dly7yett

dly7yett1#

如果您使用的是hibernate 5.1+,则hql中的查询几乎相同:

@Query("select b.accountno from TableA a join TableB b on b.sechema = a.sechema and b.type = a.type where a.ref_no= ?1")
Integer findByRefNo(String refNo);

更多信息:1,2

相关问题