Java 使用EntityManager时出现NullPointerException
我试图用Spring数据实现自定义批处理保存,但是当您使用@PersistenceContext注释时,我得到了一个NullPointerException。 我有另一个存储库扩展了我的自定义存储库,如果我理解正确,它应该允许我将EntityManager注入到impl类中 自定义存储库:Java 使用EntityManager时出现NullPointerException,java,spring,jpa,spring-data,Java,Spring,Jpa,Spring Data,我试图用Spring数据实现自定义批处理保存,但是当您使用@PersistenceContext注释时,我得到了一个NullPointerException。 我有另一个存储库扩展了我的自定义存储库,如果我理解正确,它应该允许我将EntityManager注入到impl类中 自定义存储库: public interface FRObjectRepositoryCustom { void save(List<FRObject> list); } public interfa
public interface FRObjectRepositoryCustom {
void save(List<FRObject> list);
}
public interface FRObjectRepository extends JpaRepository<FRObject, FRObjectKey>, FRObjectRepositoryCustom {...}
objectrepositorycustom的公共接口{
作废保存(列表);
}
常规JPA存储库:
public interface FRObjectRepositoryCustom {
void save(List<FRObject> list);
}
public interface FRObjectRepository extends JpaRepository<FRObject, FRObjectKey>, FRObjectRepositoryCustom {...}
对象存储库的公共接口扩展了JpaRepository,对象存储库自定义{…}
以及我的实现类:
public class FRObjectRepositoryCustomImpl implements FRObjectRepositoryCustom {
@PersistenceContext
private EntityManager em;
@Override
public void save(List<FRObject> list) {
em.getTransaction().begin();
for (int i = 0; i < list.size(); i++) {
em.persist(list.get(i));
if (i % 50 == 0 && i > 0) {
em.flush();
em.clear();
}
}
em.getTransaction().commit();
}
}
公共类FRObjectRepositoryCustomImpl实现了FRObjectRepositoryCustom{
@持久上下文
私人实体管理者;
@凌驾
公共作废保存(列表){
em.getTransaction().begin();
对于(int i=0;i0){
em.flush();
em.clear();
}
}
em.getTransaction().commit();
}
}
有什么想法吗?您必须注入EntityManager才能初始化它。在Impl类中创建构造函数:@Inject-FRObjectRepositoryCustomImpl(EntityManager-em){this.em=em;}@PriyaJain只是一个简单的例子,虽然相同的代码在不注入em的情况下对我有效。是因为我使用的是spring boot吗?您没有使用这个repo发布代码,也没有发布异常的堆栈跟踪,这是个坏主意。但是Spring数据jpa希望您的自定义类命名为FRObjectRepositoryImpl,而不是FRObjectRepositoryCustomImpl。我再也看不懂人的心思了。可能是