The documentation says User findFirstByOrderByLastnameAsc();
.
My code:
@Repository
public interface UserRepo extends JpaRepository<Users, Integer>{
// Users findByUsername(String username); // builds
Users findFirstOrderByUsername(String username); // builds
//Users findFirstByOrderByUsername(String username); // fails to build
//Users findFirstByOrderByUsernameAsc(String username); // fails to build
...
}
@Service
public class UserDetailsServices implements UserDetailsService{
@Autowired
private UserRepo repo;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Users userA = repo.findFirstOrderByUsername(username); // builds
//Users userB = repo.findFirstByOrderByUsername(username); // fails to build
//Users userC = repo.findFirstByOrderByUsernameAsc(username); // fails to build
//...
}
The error for findFirstByOrderByUsername
is:
...Could not create query for public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsername(java.lang.String); Reason: Failed to create query for method public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsername(java.lang.String); At least 1 parameter(s) provided but only 0 parameter(s) present in query...
The error for findFirstByOrderByUsernameAsc
is:
...Could not create query for public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsernameAsc(java.lang.String); Reason: Failed to create query for method public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsernameAsc(java.lang.String); At least 1 parameter(s) provided but only 0 parameter(s) present in query...
My version numbers:
<parent>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<properties>
<java.version>24</java.version>
</properties>
...
<dependency>
<groupId>.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.5.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.4.4</version>
</dependency>
Using findFirstByOrderByUsernameAsc
causes the build failure. Can I consider this possibly a bug in Spring Boot or JPA or documentation? Can I consider this a bug in my code?
The documentation says User findFirstByOrderByLastnameAsc();
.
My code:
@Repository
public interface UserRepo extends JpaRepository<Users, Integer>{
// Users findByUsername(String username); // builds
Users findFirstOrderByUsername(String username); // builds
//Users findFirstByOrderByUsername(String username); // fails to build
//Users findFirstByOrderByUsernameAsc(String username); // fails to build
...
}
@Service
public class UserDetailsServices implements UserDetailsService{
@Autowired
private UserRepo repo;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Users userA = repo.findFirstOrderByUsername(username); // builds
//Users userB = repo.findFirstByOrderByUsername(username); // fails to build
//Users userC = repo.findFirstByOrderByUsernameAsc(username); // fails to build
//...
}
The error for findFirstByOrderByUsername
is:
...Could not create query for public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsername(java.lang.String); Reason: Failed to create query for method public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsername(java.lang.String); At least 1 parameter(s) provided but only 0 parameter(s) present in query...
The error for findFirstByOrderByUsernameAsc
is:
...Could not create query for public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsernameAsc(java.lang.String); Reason: Failed to create query for method public abstract ....model.Users ....repo.UserRepo.findFirstByOrderByUsernameAsc(java.lang.String); At least 1 parameter(s) provided but only 0 parameter(s) present in query...
My version numbers:
<parent>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<properties>
<java.version>24</java.version>
</properties>
...
<dependency>
<groupId>.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.5.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.4.4</version>
</dependency>
Using findFirstByOrderByUsernameAsc
causes the build failure. Can I consider this possibly a bug in Spring Boot or JPA or documentation? Can I consider this a bug in my code?
1 Answer
Reset to default 0Can you try findFirstByUsernameOrderByUsername i think JPA expects something after by but then you continue with OrderBy