我有表A和表b没有关系。但是表A,表B与实体映射,并且实体之间没有关系。 假设表格如下所示。
@Entity
@Table(name = "tableA")
public class TableA
@Entity
@Table(name = "tableB")
public class TableB
IDA, 参考编号, 模式, 型
IDB, 户口号码, sechema, 型
我需要得到" accountno"来自tableB的给定" ref_no"有相同的" sechema"和"键入"。我可以得到" accountno"在我的实现CrudRepository的存储库类中使用以下本机SQL查询。
@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);
有人可以帮助我克服这个问题,因为使用本机查询,如果数据库名称不同,我需要更改。
我在下面试过,但它给了我错误。
@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);