如何从JHipster spring controller检索存储库?
我有一个JHipster微服务应用程序,并且添加了一个spring控制器。但是,它是在没有存储库的情况下生成的,我不知道如何检索它来执行数据任务 代码如下:如何从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
@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。就是这样!我感到困惑,因为生成的测试有不同的构造函数,需要更新。就是这样!我感到困惑,因为生成的测试有不同的构造函数,也需要更新