我正在使用 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.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;
}
注意:请注意,问题不是来自 lombok,我已经使用 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;
}
}
最佳答案
在调试屏幕截图中,可以看到 etudiantRepository 为 null。 也许您在配置中缺少 @EnableJpaRepositories 注释。
EtudiantServiceImpl 正在使用依赖注入(inject)或使用 new 关键字进行实例化?
关于Spring Data JPA 存储库 findAll() 方法返回 null 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573910/