我想问问是否有可能在回购协议(protocol)中编写避免使用SQL和@Query的Spring JPA方法。此方法必须返回连接的列表值等于某值的列表。

这是类(class):

class Temp1{
 val a: String,
}

这是包含上述类(class)的类(class):
class Temp{
val aSet: Set<Temp1>
}

所以我想在repo中有一个方法,该方法返回每个Temp,其中aSet“a”的值等于字符串。

我现在知道了:findByaSetIn(aSet: List<Temp>),但是它需要Temp值列表,而不是更精确的“a”值。

在SQL中,它类似于:
SELECT * FROM Temp t JOIN Temp1 t1 ON t1.tempID = t.id WHERE t1.a = "abc"

最佳答案

您正在寻找的是Containing

在您的示例中,它应该是这样的:

findByASetContaining(item :Temp1)

该方法将返回所有“Temp”实体的集合,其中“aSet”包含实体“item”。

您不仅可以将Containing用于列表和集合的搜索,还可以用于字符串值的搜索。

07-26 03:58