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 strategy 是 end_conference
。
您可以将以下配置添加到 application.properties
以跟随 PhysicalNamingStrategy
:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
查看 this and this 了解更多信息。
参考文献:
- 所以Answer
- 所以
我正在尝试通过执行 .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 strategy 是 end_conference
。
您可以将以下配置添加到 application.properties
以跟随 PhysicalNamingStrategy
:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
查看 this and this 了解更多信息。
参考文献:
- 所以Answer
- 所以