JpaRepository
的 findAll()
方法返回空结果。我正在使用 Spring-boot、h2 数据库和 jpa 实现 rest 服务。
这是我的 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();
}
这里是我的控制器
类
@RestController
@RequestMapping("/city")
public class CityController {
@Autowired
private CityRepository cityRepository;
@RequestMapping(method = RequestMethod.GET, value = "/all")
public List<City> getAllCityList(){
return cityRepository.findAll();
}
}
我在这里做错了什么?参考文档: Spring文档
(意思是要查看Spring文档以解决问题)
findAll
方法,因为JpaRepository
中已经有一个了,不需要再次添加。同时禁用Hibernate的模式创建功能,因为这基本上会覆盖掉schema.sql
和data.sql
所做的工作。 - M. Deinumschema.sql
和data.sql
文件,并且删除了重写的findAll
方法,但是它仍然无法工作。 - fiskraapplication.properties
文件中添加了spring.jpa.hibernate.ddl-auto=update
,并将schema.sql
和data.sql
文件再次放入资源文件夹中。然后它就起作用了!非常感谢,这救了我的一天 :) - fiskra