最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

spring boot - findFirstByOrderByUsernameAsc(String username) causes build failure in my code - Stack Overflow

programmeradmin1浏览0评论

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?

Share Improve this question edited Mar 31 at 1:59 Hdvlp asked Mar 29 at 22:44 HdvlpHdvlp 193 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Can you try findFirstByUsernameOrderByUsername i think JPA expects something after by but then you continue with OrderBy

发布评论

评论列表(0)

  1. 暂无评论