我是Spring的新手,虽然我的问题似乎不成熟。
这是我遇到的一大障碍。我正在尝试选择正确的方法来实现基于通配符的搜索逻辑,无论是选择JDBC,还是Hibernate,还是JPA和存储库。
我将证明这个问题。假设我们在网页中有一个搜索表单,有人可能会查询以检索FirstName和LastName,并说例如有记录:
可以使用类似* alb *的东西,我们应该得到:
或者使用儿子我们希望只得到“艾伯特詹姆森”。
学习Spring我发现“like”子句可能只是硬编码,如:
@Query(“从用户u中选择u,其中u.firstname喜欢%?1”) 列出findByFirstnameEndsWith(String firstname);
如果使用JPA存储库。
我希望我的问题有点清楚。
非常感谢您提供任何帮助或相关建议。
答案 0 :(得分:0)
我会使用JPA和以下示例
@NamedQuery(name="Profile.getPerson", query="SELECT u FROM User u WHERE u.firstName LIKE ?1");
Query query = session.getNamedQuery("Profile.getPerson");
query.setParameter(1, patternYouWant);
query.getResultList();