java - jpa hibernate mysql 查询损坏

标签 java mysql spring hibernate jpa

您好,我的 Spring-boot-JPA-Hibernate 类出现了令人困惑的错误。

我使用 JPA Dali 工具从 SQL 架构创建实体类。 在使用它们(使用 Spring-boot-jpa/hibarnate)时,我遇到了一些与不匹配的查询有关的奇怪问题。 这是一个例子:

属性:

hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/users
spring.datasource.username=root
spring.datasource.password=root

实体:

@Entity
@Table(name="n_user")
@NamedQuery(name="NUser.findAll", query="SELECT n FROM NUser n")
public class NUser implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    private int id;

    private String imageUrl1;

    private String name_first;


    public NCaterer() {
    }

    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public String getImageUrl1() {
        return this.imageUrl1;
    }

    public void setImageUrl1(String imageUrl1) {
        this.imageUrl1 = imageUrl1;
    }

    public String getName_first() {
        return this.name_first;
    }

    public void setName_first(String name_first) {
        this.name_first = name_first;
    }

}

存储库:

public interface UserRepo extends CrudRepository<NUser, Long> {

}

但是 Hibernate 创建了它的这个查询:

Hibernate:
    /* select
        generatedAlias0
    from
        NUser as generatedAlias0 */ select
            nuser0_.id as id1_0_,
            nuser0_.image_url1 as image_ur2_0_,
            nuser0_.name_first as name_firs3_0_
        from
            n_user nuser0_

这里的问题是image_url1,它应该是imageurl1,如实体类中所述。这种情况发生在几个方面。

为什么 Hibernate 在查询中将 CamelCase getters 转换为camel_case?我该如何配置它不这样做?

最佳答案

如果您想通过自己的字段使用 @Column 注释来指定列名称。

示例:

@Column(name = "imageUrl1")
private String imageUrl1;
@Column(name = "nameFirst")
private String name_first;

关于java - jpa hibernate mysql 查询损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44531341/

相关文章:

mysql - Ruby gem 加载失败 - 无法加载驱动程序 'MySQL'

java - 对于没有 "id"属性的 bean,Spring bean 创建失败

java - 如何使用 JPA 和 Spring Data 执行存储过程?

java - 给定字符串所有前缀的哈希值,计算子字符串的哈希值

mysql - g :select using two combobox in grails

java - 特定注释变量的AOP切入点表达式

spring - Spring Boot 应用程序中特定于环境的 application.properties 文件

java - Spring 启动 + Spring 安全 : how to suppress the basic auth form

java - 读取2字节内的位

MySQL:选择元组直到列的总和达到阈值