Spring数据JPA存储库findAll()方法返回空列表

Spring数据JPA存储库findAll()方法返回空列表,spring,hibernate,spring-data,Spring,Hibernate,Spring Data,我使用的是Spring数据JPA: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.7.1.RELEASE</version> </dependency> org.springframework.data

我使用的是Spring数据JPA:

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

org.springframework.data
spring数据jpa
1.7.1.1发布
使用Spring 4.3.7.RELEASE和Hibernate 5.2.9.Final

当我使用findAll进行查询时,列表返回的值包含空值

实体:

@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;
}
@Getter
@塞特
@诺尔格构装师
@AllArgsConstructor
@EqualsAndHashCode
@实体
公共类Etudiant实现可序列化{
/**
*串行版本
*/
私有静态最终长serialVersionUID=-1982480763983112005L;
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“idEtudiant”)
私有整数idEtudiant;
@列(name=“nomEtudiant”)
私有字符串命名;
@列(name=“prenomEtudiant”)
私家侦探;
@列(name=“adrese”)
私人字符串地址;
@列(name=“dateNaissance”)
私人日期出生;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name=“etudiant\u cours”,joinColumns=@JoinColumn(name=“idEtudiant”,referencedColumnName=“idEtudiant”),inverseJoinColumns=
@JoinColumn(name=“idCours”,referencedColumnName=“idCours”))
私人列表课程;
}
注意:问题不是来自lombock,我已经用getter和setter进行了测试

存储库:

@Repository
public interface EtudiantRepository extends JpaRepository<Etudiant, Integer> {     
}
@存储库
公共接口etudianrepository扩展了JpaRepository{
}
服务:

@Service
public class EtudiantServiceImpl {

    @Autowired
    EtudiantRepository etudiantRepository;

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

    public List<Etudiant> getAllEtudiant() {
        lst =  this.etudiantRepository.findAll();
        return lst;
    }
}
@服务
公共类EtudiantServiceImpl{
@自动连线
等等,等等,等等,等等;
List lst=new ArrayList();
公共列表getAllEtudiant(){
lst=this.etudianrepository.findAll();
返回lst;
}
}

在调试屏幕截图中,可以看到etudianrepository为空。 可能您的配置中缺少@EnableJpaRepositories注释


EtudiantServiceImpl正在使用依赖项注入或使用新关键字?

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

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

findall()。

同时检查您的数据源和实体管理器连接

最后我找到了解决方案:


将spring版本从4.3.7.RELEASE更改为4.3.10.RELEASE

您的
@Entity
类是什么?(Etudiant)是的,实体是Etudiant你的问题中有遗漏或错误的地方,但我不知道是什么?!?列表是空的还是包含空值?您需要存储库中的成员lst做什么?为什么不向我们展示实体Etundiant的源代码?如何启动调试会话以及何时拍摄快照?问题已更新。问题的标题具有误导性,因为它提到存储库返回
null
,而存储库实例本身为
null
。我已将此配置添加到applicationContext.xml,它还从实体类创建数据库表。在Controllera中使用依赖项注入实例化您是在容器中调试还是使用junit之类的工具?