我有一个连接到heroku的spring启动应用程序,所以我想尝试将postgresql集成到我的应用程序中。
我创建了数据库和一个非常基本的表:表创建和数据插入
在我的springboot应用程序中,我创建了一个存储库,一个实体,然后我只想打印出名字。
以下是jpa回购协议:
@Repository
public interface MytableRepository extends JpaRepository<Mytable, Integer>{
}
实体如下:
@Entity
@Table(name = "mytable")
public class Mytable {
@Id
@Column(name="id")
private int id;
@Column(name = "firstName")
private String firstName;
@Column(name = "lastName")
private String lastName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
最后是我的控制器:
@Controller
public class TestingStationController {
@Autowired
MytableRepository MytableRepo;
@RequestMapping(value={"test", "Test", "TEST", "TestingStation", "testingstation", "Testingstation", "testingStation"})
public ModelAndView testingStationController(ModelAndView mv) {
mv.setViewName("TestingStation/TestingStation");
System.out.println(MytableRepo.findAll());
List<Mytable> mytable = MytableRepo.findAll();
for (Mytable mytable2 : mytable) {
System.out.println("name=" + mytable2.getFirstName());
}
return mv;
}
}
最后我要做的就是从这张table上打印一些东西。应用程序构建得很好,我似乎没有任何连接问题。以防万一,下面是我的application.properties示例:
spring.jpa.database=POSTGRESQL
spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://ec2-54-224-120-186.compute-1.amazonaws.com:5432/ddd3l9bfia0463
spring.jpa.properties.hibernate.default_schema=public
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
出于明显的原因,省略用户名和密码。没有控制台错误,没有崩溃,没有连接问题。在第一次打印时只打印空括号,然后在foreach循环中不打印任何内容。任何帮助都将不胜感激。
1条答案
按热度按时间xxe27gdn1#
如果你用大写字母定义一个列名,hibernate会用下划线来改变它。所以我的“找不到表”是一个奇怪的错误,但是当我将列名改为所有小写时,我终于可以打印:)