gpt4 book ai didi

java - 即使指定了列名也是错误的

转载 作者:行者123 更新时间:2023-11-30 07:31:17 28 4
gpt4 key购买 nike

我正在开发一个使用 Spring Data JPA + Hibernate 进行数据访问的 Spring Boot 项目,但我遇到了一个奇怪的问题。

在我的实体类中,我指定了这些列:

@Entity
@Table(name = "Subjects")
public class Subject {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@Column(name="InsertionDate")
private Date insertDate;

// get + set...
}

当我尝试执行repo.findAll()时我得到这个异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'insertion_date'.

我的配置有什么问题吗?为什么 Hibernate 搜索 'insertion_date'而不是'InsertionDate' ?如何配置正确的列名称?

最佳答案

在 SpringBoot 中,除非您将应用程序属性设置为使用不同的命名类,否则将忽略 @Column(name="") 注解。

如果您没有 application.properties,请在 src/main/resources 目录中创建一个具有该名称的文件。添加行:

spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy

在其中,您的命名将按照您的意愿进行。

引用:Spring Boot + JPA : Column name annotation ignored

关于java - 即使指定了列名也是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36087016/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com