2017-12-01 13 views
1

저는 JHipster와 함께 AngularJS를 사용하여 애플리케이션을 개발하고 있습니다. 나는 그들과의 관계가있는 두 개체, 즉 DemandelettreEtudiant을 가지고있다. Demandelettre entitie에 Etudiant entitie 키를 수동으로 저장해야하지만, 만들려고 할 때 약간의 오류가 발생합니다.엔티티에서 관계를 저장하는 방법

입력 값을 입력 값으로 바꾸어 관계에 대한 id와 같이 다른 엔티티에 저장해야합니다.

function save() { 
     vm.isSaving = true; 
     if (vm.demandelettre.id !== null) { 
      vm.demandelettre.etattraitement = 1; 
      Demandelettre.update(vm.demandelettre, onSaveSuccess, onSaveError); 
     } else { 
      vm.demandelettre.datedemande = Date.now() ,'yyyy-MM-dd' ; 
      vm.demandelettre.etattraitement = 0; 
      Demandelettre.save(vm.demandelettre, onSaveSuccess, onSaveError); 
     } 
    } 

사람이 수동으로 entitie이 외래 키를 저장하는 솔루션이 있습니까 :

<div class="form-group"> 
     <label for="field_etudiant">Etudiant</label> 
     <select class="form-control" id="field_etudiant" name="etudiant" ng-model="vm.demandelettre.etudiant" ng-options="etudiant as etudiant.matricule for etudiant in vm.etudiants track by etudiant.id"> 
      <option value=""></option> 
     </select> 
    </div> 

이것은 Demandelettre 컨트롤러의 기본 save 방법? 영어에 대한 불쌍한 경우 죄송합니다. 미리 감사드립니다.

+0

당신에게 반환되는 오류는? 그것에 대해 더 자세히 알려주세요. –

+0

감사합니다. 옵션이있는 기본 메소드가 잘 작동합니다. 하지만 다른 테이블에 외래 키를 수동으로 저장해야합니다. 그리고 시도 할 때 오류 : JSON 구문 분석 오류 : org.uasz.cri.domain.Etudiant의 인스턴스를 생성 할 수 없습니다. String 값 ('233')을 역 직렬화 할 문자열 인수 생성자 /); –

+0

기본적으로 jhipster는 옵션에서 데이터를 가져 와서 다른 테이블에 추가합니다. 그러나 필자의 애플리케이션에서는 입력 텍스트에서 데이터를 가져 와서 다른 테이블에 저장해야한다. 나는 외국 열쇠를 자동으로 저장하는 방법을 모른다. –

답변

0

내 질문에 대한 답변을 찾았습니다. 자세한 내용은이 비디오를 시청하십시오. 링크 : https://youtu.be/pfK6njKkr0w

I 클래스 DemandelettreEtudiantDao를 작성하고 내가 안으로 넣어 : DemandelettreResource.java에서

package org.uasz.cri.web.rest; 

import org.springframework.jdbc.core.JdbcTemplate; 
import org.springframework.stereotype.Component; 
import org.uasz.cri.security.SecurityUtils; 

@Component 

public class DemandelletreEtudiantDao { 
    private final JdbcTemplate jdbcTemplate; 
    public DemandelletreEtudiantDao(JdbcTemplate jdbcTemplate){ 
     this.jdbcTemplate=jdbcTemplate; 
    } 
    public long getEtudiantIdByCurrentLogin(){ 
     String sql="select id from etudiant where email='"+ SecurityUtils.getCurrentUserLogin()+"'"; 
     System.out.println("Id Etudiant"+sql); 
     return this.jdbcTemplate.queryForObject(sql, long.class); 
    } 

} 

내가 DemandelletreEtudiantDao 클래스 메소드를 호출

// Call DemandelletreEtudiantDao class method 
    private UserRepository userRepository; 
    private DemandelletreEtudiantDao demandelletreEtudiantDao; 
    private EtudiantRepository etudiantRepository; 

// Class constructor 
    @Autowired 
    public DemandelettreResource(
      DemandelettreRepository demandelettreRepository, 
      UserRepository userRepository, 
      EtudiantRepository etudiantRepository, 
      DemandelletreEtudiantDao demandelletreEtudiantDao) { 
     super(); 
     this.demandelettreRepository = demandelettreRepository; 
     this.userRepository = userRepository; 
     this.etudiantRepository = etudiantRepository; 
     this.demandelletreEtudiantDao = demandelletreEtudiantDao; 
    } 

// over post method 
     demandelettre.setEtudiant(etudiantRepository.findOne(demandelletreEtudiantDao.getEtudiantIdByCurrentLogin()));