2017-11-22 6 views
0

전화 번호를 등록 페이지에 추가해야하고 db에도 저장해야합니다. 나는 다음의 링크를 따라 갔다.Jhipster 4.10.2를 사용하여 등록시 추가 필드 추가

http://www.jhipster.tech/tips/022_tip_registering_user_with_additional_information.html

그러나 여기부터 Jhispter 버전이 변경되는 코드는 위의 링크에서 코드보다 약간 다르다. 그래서 나는 약간 혼란 스럽다. 링크 지침에 따르면 나는 "ManagedUserVM 업데이트"까지했습니다. 그런 다음 코드가 다르므로 도움이 필요합니다.

답변

1

정말 그다지 변하지 않았고 논리는 변하지 않았습니다.

registerAccount 기능은 다음과 같아야한다 :

public void registerAccount(@Valid @RequestBody ManagedUserVM managedUserVM) { 
    if (!checkPasswordLength(managedUserVM.getPassword())) { 
     throw new InvalidPasswordException(); 
    } 
    userRepository.findOneByLogin(managedUserVM.getLogin().toLowerCase()).ifPresent(u -> {throw new LoginAlreadyUsedException();}); 
    userRepository.findOneByEmailIgnoreCase(managedUserVM.getEmail()).ifPresent(u -> {throw new EmailAlreadyUsedException();}); 
    User user = userService.registerUser(managedUserVM, managedUserVM.getPassword(), managedUserVM.getPhone()); 
    mailService.sendActivationEmail(user); 
} 

그리고 (A 전 createUser의 이름 바꾸기 임) UserService에서 registerUser 기능 :

public User registerUser(UserDTO userDTO, String password, String phone) { 
    // JHipster code omitted for brevity 
    ... 

    // Create and save the UserExtra entity 
    UserExtra newUserExtra = new UserExtra(); 
    newUserExtra.setUser(newUser); 
    newUserExtra.setPhone(phone); 
    userExtraRepository.save(newUserExtra); 
    log.debug("Created Information for UserExtra: {}", newUserExtra); 

    return newUser; 
} 

을 그냥 수도 있습니다 SQL 데이터베이스를 사용하는 경우 데이터베이스 변경 로그를 수동으로 변경하여 User 및 UserExtra의 ID를 올바르게 연결해야하므로 다음과 같이 표시됩니다.

<createTable tableName="user_extra"> 
     <column name="phone" type="varchar(255)"> 
      <constraints nullable="true" /> 
     </column> 
     <column name="user_id" type="bigint"> 
      <constraints primaryKey="true" nullable="false" /> 
     </column> 
     <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove--> 
    </createTable>