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

Spring Data JPA repository findAll()方法返回空列表

刁瀚昂
2023-03-14

我正在使用Spring Data JPA:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.7.1.RELEASE</version>
</dependency>

使用Spring 4.3.7。释放并Hibernate5.2.9。最终的

当我使用findAll查询时,List返回包含空值。

实体:

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Entity
public class Etudiant implements Serializable {

    /**
     * Serial version UID
     */
    private static final long serialVersionUID = -1982480763983112005L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "idEtudiant")
    private Integer idEtudiant;

    @Column(name = "nomEtudiant")
    private String nomEtudiant;

    @Column(name = "prenomEtudiant")
    private String prenomEtudiant;

    @Column(name = "adresse")
    private String adresse;

    @Column(name = "dateNaissance")
    private Date dateNaissance;

    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "etudiant_cours", joinColumns = @JoinColumn(name = "idEtudiant", referencedColumnName = "idEtudiant"), inverseJoinColumns = 
    @JoinColumn(name = "idCours", referencedColumnName = "idCours"))
    private List<Cours> cours;
}

注:请注意,问题并不是来自lombock,我已经用getter和setter进行了测试。

仓库:

@Repository
public interface EtudiantRepository extends JpaRepository<Etudiant, Integer> {     
}

服务:

@Service
public class EtudiantServiceImpl {

    @Autowired
    EtudiantRepository etudiantRepository;

    List<Etudiant> lst = new ArrayList<Etudiant>();

    public List<Etudiant> getAllEtudiant() {
        lst =  this.etudiantRepository.findAll();
        return lst;
    }
}

共有3个答案

邢和光
2023-03-14

您需要使用上下文:组件扫描注释到xml配置中扫描基本包和存储库包,您可以在下面找到代码:

<jpa:repositories base-package="com.demo.test.repository" />
<context:component-scan annotation-config="true"
        base-package="com.demo.test" />

如果findall()。还要检查数据源和实体管理器的连接

越安翔
2023-03-14

最后我找到了解决办法:

从4.3.7更改spring版本。发布到4.3.10。释放

云光明
2023-03-14

在调试截图中,可以看到etudiantRepository为null。也许您的配置中缺少@EnableJpaRepository注释。

EtudiantServiceImpl正在使用依赖注入或新关键字实例化?

 类似资料:
  • 问题内容: 如果没有行,都与正在返回 空 一个,而不是列表值。 这背后的原因是什么? 问题答案: 原因是不与有效Java 2nd Edition,项目43 一致,在客户端代码中强制执行空检查: 返回空数组或集合,而不是null 。 这使客户端代码更简单,更不易出错(并且很可能也是该方法的实现)。 空返回惯用语可能是C编程语言的一种保留,在C语言中,数组长度与实际数组分开返回。在C中,如果返回零作为

  • 所以,我的问题在于title-crudepository方法返回一个空列表。我重写了Crud的方法,因为它返回的是iterable而不是list。 我尝试使用而不是(当时我没有覆盖方法),但得到了相同的结果。 我的代码: Event.java 城市JAVA 事件Controller.java 事件条目。html 我正在使用一个嵌入式H2数据库,其中有一个用于将数据填充到数据库中的文件(我没有文件,

  • 有人能告诉我为什么列表返回空吗?我的xpath是准确的,因为我重新检查了它,但我仍然无法迭代它,而调试for循环甚至没有执行。我不确定我哪里出了问题。

  • 正如您在这里看到的,基本的程序流程是将一个param传递到这条路由,它用param设置的值创建一个新的用户对象(当前只有“role”,但我希望它会随着时间的推移而改变) 然后,findAll方法查找role=角色参数值的所有记录; 换句话说,我的SQL查询将如下所示: 在role=“admin”处运行此查询当前返回1条记录,这是预期的。 但是上面java代码中的findAll(示例)返回0条记录。

  • 问题内容: 我正在尝试编写一个用于与last.fm API进行交互的小脚本。 我有一点使用的经验,但是以前使用它的方式似乎无效,而是返回一个空列表。 我删除了API密钥,因为我不知道它到底应该有多私密,并举了一个示例,说明了我在该位置接收的XML。 与API交互的类: 调用的get_now_playing方法: 我收到的xml样本: 问题答案: 问题在于, 如果给定标签名称,则仅搜索元素的直接后代

  • 我试图用刮擦和飞溅来刮取衣服的图像和一些产品信息。我想得到的形象,只有产品(所以没有模型)。比如这张照片https://www2.hm.com/nl_nl/productpage.0220094001.html 然而,如果我试图让src在Scrapy shell中 回答xpath('//figure[包含(@class,“secondary”)]///img//@src')。摘录() 返回一个空列