我正在JHipster应用程序上工作,我有一个与用户具有多对一关系的研究实体(因此一个用户可以有许多研究)。我正在尝试更改用户在对话框组件中的选择,以创建一个新的研究来自动选择当前登录的用户。JHipster获取当前用户
我已经改变了选择,使得只有单个用户应显示为选择一个选项,解决这个问题,我要么禁用场或删除它,这样study.user自动设置后:
<select class="form-control" id="field_user" name="user [(ngModel)]="study.user" >
<option [ngValue]="user.id === study.user?.id ? study.user : user">{{user.login}}</option>
</select>
的userService是,虽然查询:
this.userService.query()
.subscribe((res: ResponseWrapper) => { this.user = res.json; }, (res: ResponseWrapper) => this.onError(res.json));
和运行这个查询API中user.service.ts:
private resourceUrl = 'api/users';
...
query(req?: any): Observable<ResponseWrapper> {
const options = createRequestOption(req);
return this.http.get(this.resourceUrl, options)
.map((res: Response) => this.convertResponse(res));
}
GET方法在UserResource.java:
@GetMapping("/users")
@Timed
public ResponseEntity<UserDTO> getAllUsers() {
return ResponseUtil.wrapOrNotFound(
userService.getAllManagedUsers()
.map(UserDTO::new));
}
调用该方法UserService.java:
@Transactional(readOnly = true)
public Optional<User> getAllManagedUsers() {
return userRepository.findOneByLogin(SecurityUtils.getCurrentUserLogin());
}
findOneByLogin在userRepository,春节数据JPA库为用户自定义实体。
我的问题是,当我试图从我的实体访问用户对象,它是不确定的,抛出的错误,如:
ERROR TypeError: Cannot read property 'id' of undefined
谢谢尼科!这解决了我现在约2周的问题。虽然盖尔在建议我遵循API优先设计方面有很强的意义,但是这消除了我对依赖用户选择的依赖。我使用'study.setUser'而不是'Study.setUser'(其中order是我实体的名称),并根据我的IDE'User user = new User()';是一个多余的声明(我不想去除它)。 – fralewsmi