Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据JPA返回空存储库_Java_Spring_Spring Boot_Spring Data Jpa - Fatal编程技术网

Java Spring数据JPA返回空存储库

Java Spring数据JPA返回空存储库,java,spring,spring-boot,spring-data-jpa,Java,Spring,Spring Boot,Spring Data Jpa,在使用Spring Boot和Spring Data JPA时,当@Autowiring时,我会得到空存储库 我可能错过了一些简单的配置,但经过数小时的查看和审阅文档后,我没有发现任何缺陷。我需要她的一双眼睛来重新审视 以下是相关配置: @SpringBootApplication @EnableJpaRepositories @EnableTransactionManagement public class ServerApp { public static void main(Strin

在使用Spring Boot和Spring Data JPA时,当
@Autowiring
时,我会得到空存储库

我可能错过了一些简单的配置,但经过数小时的查看和审阅文档后,我没有发现任何缺陷。我需要她的一双眼睛来重新审视

以下是相关配置:

@SpringBootApplication
@EnableJpaRepositories
@EnableTransactionManagement
public class ServerApp {
  public static void main(String[] args) {
    SpringApplication.run(ServerApp.class, args);
  }
}
使用存储库的服务。执行
doSomething()
时,
repository
为空

@Service
@Slf4j
public class MyService{
  @Autowired
  private MyRepository repository;

  @Override
  public AnEntity doSomething(String index) {
    return repository.findOneByIndex(index);
  }
}
存储库

public interface MyRepository extends   JpaRepository<AnEntity, String> {
  AnEntity findOneByIndex(String index);
}
persistence.xml文件


org.hibernate.jpa.HibernatePersistenceProvider
com.myapp.AnEntity

POM


4.0.0
com.myapp
myapp
1.0-快照
聚甲醛
1.8
org.springframework.boot
spring启动程序父级
1.2.7.发布
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴起动器执行器
org.springframework.plugin
spring插件核心
1.2.0.1发布
org.springframework.boot
spring引导启动器数据jpa
org.postgresql
postgresql
9.4-1201-jdbc41
net.logstash.logback
logstash logback编码器
4.5.1
org.projectlombok
龙目
1.16.6
假如
朱尼特
朱尼特
4.12
测试
org.springframework.boot
弹簧起动试验
测试
com.jayway.jsonpath
json路径
2.0.0
测试
br.com.six2six
夹具厂
3.0.0
log4j
log4j

最终,我在代码中出现了一个错误,该代码使用
new
而不是依赖Spring的CDI显式实例化了服务。因此,Spring没有处理服务中存储库的@Autowire in


最终,我在代码中出现了一个错误,该代码使用
new
,而不是依赖Spring的CDI显式实例化了服务。因此,Spring没有处理服务中存储库的@Autowire in


按如下方式更改MyRepository类:

public interface MyRepository extends   JpaRepository<AnEntity, Long> {
    public AnEntity findOneByData(String data);
    public AnEntity findOneByIndex(String index);
}
公共接口MyRepository扩展了JpaRepository{
公共实体findOneByData(字符串数据);
公共实体findOneByIndex(字符串索引);
}

按如下方式更改MyRepository类:

public interface MyRepository extends   JpaRepository<AnEntity, Long> {
    public AnEntity findOneByData(String data);
    public AnEntity findOneByIndex(String index);
}
公共接口MyRepository扩展了JpaRepository{
公共实体findOneByData(字符串数据);
公共实体findOneByIndex(字符串索引);
}

认为您错过了@Repository注释发布您使用的整个类
MyService
。请添加您的bean配置-我不确定您使用的是Java配置还是XML,或者什么…@Jens:about
@Repository
在最新的Spring版本中不再需要,如文档所示。这里的索引是什么。我在实体类中没有看到此字段。我认为您错过了@Repository注释发布您正在使用
MyService
的整个类。请添加您的bean配置-我不确定您是在使用Java配置还是XML或其他什么…@Jens:about
@Repository
在最新的Spring版本中不再需要,如中所示文档。这里的索引是什么。我在实体类中看不到这个字段,实际上没有必要显式地显示要扫描的基本包。默认情况下,注释从其包开始,并在包树中向上扫描(朝向叶子)。如果找到存储库,Spring会抛出一个错误,指出无法连接的未满足的依赖项。当应用程序启动时,情况并非如此。实际上不需要显式地扫描要扫描的基本包。默认情况下,注释从其包开始,并在包树中向上扫描(朝向叶子)。如果找到存储库,Spring会抛出一个错误,指出无法连接的未满足的依赖项。当应用程序启动时,情况并非如此。
//Spring CDI takes charge and autowires the Service and it's dependencies
@Autowired
private MyService myService;

public void someMethod(){
  setService(myService);
}
public interface MyRepository extends   JpaRepository<AnEntity, Long> {
    public AnEntity findOneByData(String data);
    public AnEntity findOneByIndex(String index);
}