我想对枚举列执行like
查询,如下所示:
@Repository
public interface StudentRepository extends JpaRepository<Student, String>
{
@Query("SELECT u FROM Student u WHERE u.house LIKE :namePrefix% ")
Page<Student> getStudentWithMatchingHouseNamePrefix(@Param("namePrefix")
String namePrefix,
Pageable pageable);
}
Student
实体如下:
@Entity
@Table(name = "students")
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@NotNull
@Enumerated(EnumType.STRING)
@Column(name = "house", unique = true, nullable = false)
private House house;
...
}
我无法理解如何在不修改底层实体的情况下编写查询。
编辑
现在我写的查询如下:
@Query("SELECT u FROM Student u WHERE CONCAT(u.house,'') LIKE :namePrefix%")
但即使在房子有多个条目之后,我也会得到所有查询的空列表。
尝试使用concat
SELECT u.* FROM Student u WHERE u.house LIKE concat(:namePrefix,'%')