【发布时间】:2017-08-25 10:39:24
【问题描述】:
JpaRepository findAll() 方法返回空结果。我正在尝试通过使用 Spring-boot、h2 数据库和 jpa 来实现休息服务。
这是我的schema.sql
CREATE TABLE IF NOT EXISTS `City` (
`city_id` bigint(20) NOT NULL auto_increment,
`city_name` varchar(200) NOT NULL,
PRIMARY KEY (`city_id`));
我的data.sql 文件包括:
INSERT INTO City (city_id,city_name) VALUES(1,'EDE');
INSERT INTO City (city_id,city_name) VALUES(2,'DRUTEN');
INSERT INTO City (city_id,city_name) VALUES(3,'DELFT');
City 实体:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "City")
public class City {
@Id
@GeneratedValue
@Column(name = "city_id")
private Long cityId;
@Column(name = "city_name")
private String cityName;
public Long getCityId() {
return cityId;
}
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
}
JpaRepository 接口:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CityRepository extends JpaRepository<City, Long> {
@Override
List<City> findAll();
}
这是我的Contoller 课程
@RestController
@RequestMapping("/city")
public class CityController {
@Autowired
private CityRepository cityRepository;
@RequestMapping(method = RequestMethod.GET, value = "/all")
public List<City> getAllCityList(){
return cityRepository.findAll();
}
}
我在这里做错了什么?参考文档:Spring doc
【问题讨论】:
-
删除你覆盖的
findAllJpaRepository中已经有一个,不需要再次添加它并禁用休眠模式创建,因为这基本上覆盖了schema.sql和@所做的工作987654337@. -
@M.Deinum 我删除了
schema.sql和data.sql并删除了覆盖的findAll方法,但它不起作用 -
如果你删除这些文件,你显然不会插入任何东西......
-
@M.Deinum 我在 `application.properties` 文件中添加了`spring.jpa.hibernate.ddl-auto=update`,并将`schema.sql`和`data.sql`文件放入资源中再次。然后它起作用了!非常感谢。它拯救了我的一天:)
标签: java spring spring-data-jpa h2