gpt4 book ai didi

java - JPA getReference 在我的对象中设置了错误的 id(始终设置为零)

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:49 24 4
gpt4 key购买 nike

我正在使用 JPA EntityManager.getReference(Class clazz, Integer pk)。我知道 pk 值设置为 1,但在该方法返回的对象中,该值仍然设置为零。我不明白为什么。

这是我的代码:

@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() getter 之前,id 并未真正初始化为真实 id。

您应该只在调试器中检查!

关于java - JPA getReference 在我的对象中设置了错误的 id(始终设置为零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36933191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com