CrudRepository 引用了数据库中错误的列

CrudRepository referencing a column wrong from database

我正在尝试通过执行 .findAll() 请求从 crudRepository 检索列表,然后将其传递到 html,后者将它们列在 table 中。它可以很好地检索数据,但日期除外,这给我一个奇怪的错误。我正在使用 Postgresql.

我的创作tablesql:

--Table:conference_table
CREATE TABLE conference_table (
conference_id SERIAL NOT NULL,
user_id INT NOT NULL,
name VARCHAR(32),
description VARCHAR(255),
startConference DATE,
endConference DATE,
PRIMARY KEY (conference_id),
FOREIGN KEY (user_id) REFERENCES user_table(user_id)
);

在我的 conference.java 我有:

@Column(name = "startConference")
private Date startConference;

@Column(name = "endConference")
private Date endConference;

在我的控制器中class我有方法:

@GetMapping(path="/configure")
public String showConfigurePage(Model model){
    List<Conference> conferenceList = conferenceRepository.findAll(); // This gives me the error
    model.addAttribute("conferenceList", conferenceList);
    return "configure";
}

错误:

org.postgresql.util.PSQLException: ERROR: column conference0_.end_conference does not exist
  Hint: Perhaps you meant to reference the column "conference0_.endconference".

知道为什么会这样吗?如果我遗漏了任何信息,我可以提供更多信息。

您看到的是正确的行为:@Column(name="endConference")default strategyend_conference

您可以将以下配置添加到 application.properties 以跟随 PhysicalNamingStrategy:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

查看 this and this 了解更多信息。

参考文献:

  • 所以Answer
  • 所以