当前位置: 首页 > 知识库问答 >
问题:

JpaRepository findAll()返回空结果

姜宏盛
2023-03-14

JParepositoryFindAll()方法返回空结果。我正在尝试使用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');

城市实体:

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();
    }
}

共有1个答案

年光明
2023-03-14

您有一个schema.sqldata.sql,它们都是在配置了datasource并准备就绪后执行的。接下来,创建EntityManagerFactory,默认情况下(请参见参考指南),这将create-drop为嵌入式类型(如H2)创建数据库。

您可以通过将spring.jpa.hibernate.ddl-auto属性更改为createcreate-drop之后的任何内容来重写此行为。

另一个解决方案是将data.sql重命名为import.sql,这将在Hibernate为您创建架构后执行。现在显然还可以删除schema.sql,因为Hibernate将创建模式。

如果这是为了学习,您应该可以,如果您想在现场生产系统中使用它,我建议不要使用Flyway之类的东西来管理您的模式。

 类似资料:
  • 问题内容: 我正在使用JDBC来实现非常简单的数据库连接。 我已经创建了连接/语句并执行了查询。我在调试器中检查语句的查询对象,以确认它正在发送正确的查询。然后,我再次检查了数据库中的查询(直接从调试器复制),以确保其返回数据。但是,返回的结果集在.next()上给出false 这里有我遗漏的常见陷阱吗? 还有myDB类(一个简单的包装程序,使我可以将连接/语句代码放入任何项目中) 编辑:根据建议

  • 问题内容: 我有一个看起来像这样的JSON Blob 我有一些代码将其转换回go结构 但是我在运行时看到的只是一个零位结构 我尝试先分配该结构,但那也没有用,我不确定为什么它不产生值,并且不返回错误 问题答案: 您的结构字段不会导出。这是因为它们以小写字母开头。 当我说“未导出”时,是指它们在您的包装之外不可见。您的软件包可以愉快地访问它们,因为它们在本地作用域内。 至于包装-它看不到它们。您需要

  • 空结果如下所示: 非空结果(所需结果)如下所示: 我有这个函数,它应该获取“. flac”文件并将其转换为文本。出于某种原因,只有这两个示例“. flac”文件在通过Google Speech API时返回字符串,其他flac文件返回EMPTY结果。这些人遇到的同样问题:链接 这是我所有的flac文件:链接 <代码>我的。flac和此\u is\u a\u测试。flac工作得很好,google语音

  • 你好,我有一个问题与elasticsearch php api,Elastica。 如果我运行这个: 我得到0个结果

  • 问题内容: 我有这个映射: 而这个查询: 我等待25个结果,因为我有25个后索引。但是我得到一个空集。如果我删除嵌套的过滤器,一切正常。我希望能够过滤嵌套对象 在我的设置中,我有: 我在这里缺少什么。 谢谢 问题答案: 简短版本: 尝试此操作(更新端点和索引名称后): 它对我有用,并且简化了您的设置。稍后,我将发布带有较长解释的编辑。 编辑:长版: 查询的问题是分析器与查询中的过滤器结合在一起。您

  • 我正在使用Spring数据存储库,没有任何问题。当我尝试添加分页(使用可分页界面)时,它工作正常。 但是,当返回的结果集小于Page大小时,结果为空List。 以下是我的页面请求。index和objectsPerPage的默认值分别为0和10。 将其用于返回少于10个结果的查询时,结果列表为空。 这就是我在服务层使用存储库的方式: 编辑1我找到了原因,但我仍在寻找解决方案或解决方法。 此代码位于S