【问题标题】:Spring Boot Project - Issue with writing JPQL (Intellij)Spring Boot 项目 - 编写 JPQL (Intellij) 的问题
【发布时间】:2023-03-24 08:24:01
【问题描述】:

所以我已经设置了一个 Spring Boot 项目,我想用它创建一些特定的查询。

很简单,我只想执行一个select语句:

public class UserRepositoryCustomImpl implements UserRepositoryCustom {

    @PersistenceContext
    private EntityManager entityManager;


    public User findUserByEmail(String email) {
        Query nativeQuery = entityManager.createQuery("select e from User");
        nativeQuery.getFirstResult();
        return new User();
    }

}

在 Intellij 中,当我将鼠标悬停在用户上时,它说不能 resolve symbol for User,我有一个谷歌,大多数答案都说你需要使用实体的名称,我当然这样做了:

@Entity(name = "PG_user")
public class User extends AbstractEntity {

    @Column
    private String email;

    @Column
    private String password;

    public User(){}

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

这也是我的 POM,如果这有帮助的话:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.modelmapper/modelmapper -->
        <dependency>
            <groupId>org.modelmapper</groupId>
            <artifactId>modelmapper</artifactId>
            <version>0.3.5</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>6.2.2.jre8</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.webjars.bower/angular-bootstrap-contextmenu -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-bootstrap-contextmenu</artifactId>
            <version>0.9.7</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-crypto -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-crypto</artifactId>
            <version>3.1.0.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api -->
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>


    </dependencies>

【问题讨论】:

    标签: java spring spring-boot spring-data-jpa jpql


    【解决方案1】:

    但你的实体名称是 PG_user

    @Entity(name = "PG_user")
    public class User extends AbstractEntity {
    

    name 属性定义了您必须用于查询的实体的名称。

    但我假设您想设置表的名称。

    那就是

    @Table(name = "PG_user")
    @Entity
    public class User extends AbstractEntity {
    

    【讨论】:

      猜你喜欢
      • 2021-11-04
      • 2015-08-10
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多