Reputation: 3
I have created a custom query in my Repository Interface as:
@Query(name = "select * from tblusers where first_name like %?1% OR last_name like %?2% OR username like %?3%", nativeQuery = true)
public List<Optional<UsersEntity>> customizedFindUser(String first_name,String last_name,String username);
And when I try to compile the project am facing the error as:
Could not create query for public abstract java.util.List com.beezy.asserttracker.users.UsersRepository.customizedFindUser(java.lang.String,java.lang.String,java.lang.String); Reason: Failed to create query for method public abstract java.util.List com.beezy.asserttracker.users.UsersRepository.customizedFindUser(java.lang.String,java.lang.String,java.lang.String); No property 'customizedFindUser' found for type 'UsersEntity'
So am confused as to what I have done wrong.
I have tried changing the placeholder numbering as:
@Query(name = "select * from tblusers where first_name like %?%1 OR last_name like %?%2 OR username like %?%3", nativeQuery = true)
public List<Optional<UsersEntity>> customizedFindUser(String first_name,String last_name,String username);
And then I have also commented out the code and it the project could compile successfully. So I can't figure out what is wrong here.
Upvotes: 0
Views: 802
Reputation: 387
Property name
of @Query anotation related to named queries. Use value
instead
Upvotes: 1
Reputation: 49375
Add the sql placehoders to the string directly
@Query(name = "select * from tblusers where first_name like ?1 OR last_name like ?2 OR username like ?3", nativeQuery = true)
public List<Optional<UsersEntity>> customizedFindUser(String "%" + first_name + "%",String "%" + last_name + "%",String "%" + username + "%");
Upvotes: 0