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
如何从JHipster spring controller检索存储库?_Spring_Jhipster_Spring Repositories - Fatal编程技术网

如何从JHipster spring controller检索存储库?

如何从JHipster spring controller检索存储库?,spring,jhipster,spring-repositories,Spring,Jhipster,Spring Repositories,我有一个JHipster微服务应用程序,并且添加了一个spring控制器。但是,它是在没有存储库的情况下生成的,我不知道如何检索它来执行数据任务 代码如下: @RestController @RequestMapping("/api/data") public class DataResource { private final Logger log = LoggerFactory.getLogger(DataResource.class); private final Dev

我有一个JHipster微服务应用程序,并且添加了一个spring控制器。但是,它是在没有存储库的情况下生成的,我不知道如何检索它来执行数据任务

代码如下:

@RestController
@RequestMapping("/api/data")
public class DataResource {

    private final Logger log = LoggerFactory.getLogger(DataResource.class);
    private final DeviceRepository deviceRepository;

    public DataResource() {
    }

    /**
    * GET global
    */
    @GetMapping("/global")
    public ResponseEntity<GlobalStatusDTO[]> global() {

        List<Device> list=deviceRepository.findAll();
        GlobalStatusDTO data[]=new GlobalStatusDTO[]{new GlobalStatusDTO(list.size(),1,1,1,1)};
        return ResponseEntity.ok(data);
    }

}
@RestController
@请求映射(“/api/data”)
公共类数据资源{
私有最终记录器log=LoggerFactory.getLogger(DataResource.class);
私人最终设备;
公共数据资源(){
}
/**
*全球化
*/
@GetMapping(“/global”)
公共响应全球(){
List=deviceposition.findAll();
GlobalStatusDTO数据[]=新的GlobalStatusDTO[]{new GlobalStatusDTO(list.size(),1,1,1)};
返回ResponseEntity.ok(数据);
}
}
编辑:我需要注入一个已经存在的存储库,下面是CRUD部分,其中存储库被初始化:

@RestController
@RequestMapping("/api")
@Transactional
public class DeviceResource {

    private final Logger log = LoggerFactory.getLogger(DeviceResource.class);

    private static final String ENTITY_NAME = "powerbackDevice";

    @Value("${jhipster.clientApp.name}")
    private String applicationName;

    private final DeviceRepository deviceRepository;

    public DeviceResource(DeviceRepository deviceRepository) {
        this.deviceRepository = deviceRepository;
    }

    /**
     * {@code POST  /devices} : Create a new device.
     *
     * @param device the device to create.
     * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new device, or with status {@code 400 (Bad Request)} if the device has already an ID.
     * @throws URISyntaxException if the Location URI syntax is incorrect.
     */
    @PostMapping("/devices")
    public ResponseEntity<Device> createDevice(@Valid @RequestBody Device device) throws URISyntaxException {
...

@RestController
@请求映射(“/api”)
@交易的
公共类设备源{
私有最终记录器日志=LoggerFactory.getLogger(DeviceResource.class);
私有静态最终字符串实体\u NAME=“powerbackDevice”;
@值(${jhipster.clientApp.name}”)
私有字符串applicationName;
私人最终设备;
公共设备源(设备存储设备存储){
this.deviceRepository=deviceRepository;
}
/**
*{@code POST/devices}:创建一个新设备。
*
*@param device要创建的设备。
*@返回状态为{@code 201(Created)}且主体为新设备的{@link ResponseEntity},如果设备已经有ID,则返回状态为{@code 400(错误请求)}的{@link ResponseEntity}。
*如果位置URI语法不正确,@将抛出URISyntaxException。
*/
@后映射(“/devices”)
public ResponseEntity createDevice(@Valid@RequestBody Device Device)抛出URISyntaxException{
...

我可能误解了您的意思,但是您的第一个代码部分不起作用,因为您没有通过构造函数注入
DevicePositive
。当然,还有其他注入方法

@RestController
@RequestMapping("/api/data")
public class DataResource {

    private final Logger log = LoggerFactory.getLogger(DataResource.class);
    private final DeviceRepository deviceRepository;

    //changes are here only, constructor method of injection
    public DataResource(DeviceRepository deviceRepository) {
      this.deviceRepository = deviceRepository; 
    }

    /**
    * GET global
    */
    @GetMapping("/global")
    public ResponseEntity<GlobalStatusDTO[]> global() {

        List<Device> list=deviceRepository.findAll();
        GlobalStatusDTO data[]=new GlobalStatusDTO[]{new GlobalStatusDTO(list.size(),1,1,1,1)};
        return ResponseEntity.ok(data);
    }

}
@RestController
@请求映射(“/api/data”)
公共类数据资源{
私有最终记录器log=LoggerFactory.getLogger(DataResource.class);
私人最终设备;
//这里的更改仅限于注入的构造函数方法
公共数据资源(设备存储设备存储){
this.deviceRepository=deviceRepository;
}
/**
*全球化
*/
@GetMapping(“/global”)
公共响应全球(){
List=deviceposition.findAll();
GlobalStatusDTO数据[]=新的GlobalStatusDTO[]{new GlobalStatusDTO(list.size(),1,1,1)};
返回ResponseEntity.ok(数据);
}
}

我可能误解了您的意思,但是您的第一个代码部分不起作用,因为您没有通过构造函数注入
DevicePositive
。当然,还有其他注入方法

@RestController
@RequestMapping("/api/data")
public class DataResource {

    private final Logger log = LoggerFactory.getLogger(DataResource.class);
    private final DeviceRepository deviceRepository;

    //changes are here only, constructor method of injection
    public DataResource(DeviceRepository deviceRepository) {
      this.deviceRepository = deviceRepository; 
    }

    /**
    * GET global
    */
    @GetMapping("/global")
    public ResponseEntity<GlobalStatusDTO[]> global() {

        List<Device> list=deviceRepository.findAll();
        GlobalStatusDTO data[]=new GlobalStatusDTO[]{new GlobalStatusDTO(list.size(),1,1,1,1)};
        return ResponseEntity.ok(data);
    }

}
@RestController
@请求映射(“/api/data”)
公共类数据资源{
私有最终记录器log=LoggerFactory.getLogger(DataResource.class);
私人最终设备;
//这里的更改仅限于注入的构造函数方法
公共数据资源(设备存储设备存储){
this.deviceRepository=deviceRepository;
}
/**
*全球化
*/
@GetMapping(“/global”)
公共响应全球(){
List=deviceposition.findAll();
GlobalStatusDTO数据[]=新的GlobalStatusDTO[]{new GlobalStatusDTO(list.size(),1,1,1)};
返回ResponseEntity.ok(数据);
}
}

你能澄清这个问题吗?你是说你没有DevicePository吗?或者如果你想在DeviceSource中包含(注入)DevicePository,那么你可以将它包含在构造函数中或使用@inject方法。你能澄清这个问题吗?你是说你没有DevicePository吗?或者如果你想包含(注入)DeviceResource中的DevicePository,然后您可以将其包含在构造函数中或使用@InjectMethod。就是这样!我感到困惑,因为生成的测试有不同的构造函数,需要更新。就是这样!我感到困惑,因为生成的测试有不同的构造函数,也需要更新