比如,我有以下实体类:
Person.java
@Entity
public class Person {
@Id
private String name;
private String[] cars;
// Constructor, getters and setters
}
以及存储库:
PersonRepository。Java语言
public interface PersonRepository extends CrudRepository<Person, String> {
// this is unclear!
List<Person> getAllByCars...(String car)
}
是否有一个方法返回所有人,其car数组包含一个给定的car(上面的String参数)?
对我来说,似乎所有支持的JPA关键字都只能处理单个元素,而不能处理数组。
谢谢你的帮助!
我在猜测您当前是如何存储汽车信息的,并提出一个可能的解决方案:
@Entity
public class Car {
@Id
private String name;
@Column
private String person_name;
}
public interface CarRepository extends JpaRepository<Car, String> {
//Result will have all cars with the person_name identifying the Person @Entity
List<Car> findByName(String name);
}
理想情况下,您应该像这样将汽车声明为一个单独的实体
@Entity
public class Person {
@Id
private String name;
private List<Car> cars;
// Constructor, getters and setters
}
如果没有,您至少应该将Array更改为List。改变
private String[] cars;
到
@ElementCollection
private List<String> cars;
那么您必须编写这样的查询
@Query("select p from Person p WHERE :car in elements(p.cars)")
List<Person> getAllByCars...(@Param("car") String car)
问题内容: 我有一个JSON数组 我将如何搜索8097并获取内容? 问题答案: 使用该函数将JSON字符串转换为对象数组,然后遍历该数组直到找到所需的对象:
这是我的阵列 我想做的是:写一个函数 例如:将返回18将返回19等等
问题内容: 如何使用preg_match在数组中搜索? 例: 问题答案: 在这篇文章中,我将为您提供三种不同的方法来满足您的要求。 我实际上建议使用最后一个代码段,因为它最容易理解并且代码简洁。 如何查看数组中与我的正则表达式匹配的元素? 有专门用于此目的的功能。它将一个正则表达式作为第一个参数,并将一个数组作为第二个参数。 请参见以下示例: 输出 但是我只想获取指定组的值。怎么样? 与能解决清洁
假设mongodb文档(表)“users”为 我想找到1975年必须获得“国家奖章”的人,可能还有其他人在不同的年份获得该奖项。 我怎样才能找到这个人使用奖励类型和年份。所以我可以得到确切的人。
问题内容: 假设mongodb文档(表)“用户”为 我想找到获得“国家奖章”的人,必须在1975年获得该奖。可能会有其他人在不同的年份获得此奖。 如何使用奖励类型和年份查找此人。这样我就可以找到确切的人。 问题答案: 正确的方法是: 允许您在同一数组元素中匹配多个组件。 没有mongo的用户会在1975年代和某些奖项中寻找获得National Medal的用户,但不会寻找1975年获得Nation
我刚开始使用hibernate lucene搜索。从几天以来,我一直致力于搜索关键字与特殊字符。我正在使用MultiFieldQueryParser进行精确短语匹配以及布尔搜索。但在这个过程中,我无法得到搜索关键字的结果,如“有1年以上的经验”,如果我没有在搜索关键字周围添加任何引号,那么我就得到了结果。所以我在执行lucene查询时观察到的是,它正在转义特殊符号(+)。我正在使用Standard