2016-04-29 14 views
1

私はJPA EntityManager.getReference(Class clazz, Integer pk)を使用しています。 pkの値は1に設定されていますが、メソッドによって返されたオブジェクトでは値はゼロに設定されています。なぜか分からない。ここでJPA getReferenceオブジェクトに間違ったIDを設定しました(常に0に設定されています)

は私のコードです:

@Component 
public class TypeDAO extends MainDAO { 

    public TypeDTO simpleProxyRetrieveByIdType(int id){ 
     TypeDTO type = simpleProxyRetrieveById(TypeDTO.class, id); 
     return type; 
    } 
} 

マイMainDAOクラス:

static protected <E> E simpleProxyRetrieveById(Class <E> clazz, Integer id) { 
    EntityManager em = emFactory.createEntityManager(); 
    E item = em.getReference(clazz, id); 
    em.close(); 
    return item; 
} 

ここではTypeDTOクラスは次のとおりです。すべての答えを

@Entity 
@Table(name = "type_livr") 
public class TypeDTO { 

    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE) 
    @Column(name = "type_livraison_id") 
    private int id; 
     public int getId() {return id;} 
     public void setId(int id) {this.id = id;} 

    @Column(name = "code") 
    private int code; 
    public int getCode() {return code;} 
    public void setCode(int code) {this.code = code;} 

    @Column(name = "libelle_court") 
    private String libelleCourt; 
     public String getLibelleCourt() {return libelleCourt;} 
     public void setLibelleCourt(String libelleCourt) {this.libelleCourt = libelleCourt;} 

    @Column(name = "libelle_long") 
    private String libelleLong; 
     public String getLibelleLong() {return libelleLong;} 
     public void setLibelleLong(String libelleLong) {this.libelleLong = libelleLong;} 

    @OneToMany(mappedBy = "type") 
    private List<LivraisonDTO> typeLivr; 
     public List<LivraisonDTO> getTypeLivr() {return typeLivr;} 
     public void setTypeLivr(List<LivraisonDTO> typeLivr) {this.typeLivr = typeLivr;} 

    public TypeDTO() { 
    } 

    public TypeDTO(int id, int code, String libelleCourt, String libelleLong) { 
     this.id = id; 
     this.code = code; 
     this.libelleCourt = libelleCourt; 
     this.libelleLong = libelleLong; 
    } 
} 

感謝。あなたがのgetId()ゲッターと呼ばれるまで

idが本当に本当のIDに初期化されていません。実際には問題はありません

答えて

0

デバッガでのみチェックしてください。

関連する問題