我已經使用JPA構建了我的數據模型,並使用Hibernate的EntityManager訪問數據。我正在爲其他類使用此配置,並沒有任何問題。Spring/JPA:複合鍵查找返回空元素[{}]
問題是我創建了一個具有複合主鍵(兩個鍵是外鍵)的實體,添加元素的工作非常完美我在數據庫中檢查了它,但我無法從數據庫檢索填充的行。例如,如果我查詢「FROM referentiel」以返回表中所有參數列表,我得到這個list.size()具有適當數量的元素(2),但元素爲空。
實體:
@Entity
@Table(name = "Et_referentiel")
public class Referentiel implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@ManyToOne
@JoinColumn(name = "id_projet")
private Projet projet;
@Id
@ManyToOne
@JoinColumn(name = "id_ressource")
private Ressource ressource;
@Column(name = "unite", nullable = false)
private String unite;
}
這裏是我的控制器的GetList方法:
@PostMapping(value = "/list", consumes = { MediaType.APPLICATION_JSON_UTF8_VALUE })
public List<Referentiel> listReferentiel(@RequestBody Long idProjet) {
List<Referentiel> referentiel = referentielService.listReferentiel(idProjet);
return referentiel;
}
,這裏是我的DAO方法:
@Autowired
private EntityManager em;
@Override
public void ajouterReferentiel(Referentiel ref) {
em.persist(ref);
em.flush();
}
@SuppressWarnings("unchecked")
@Override
public List<Referentiel> listReferentiel(Long idProjet) {
Query query = em.createQuery("Select r from Referentiel r where r.projet.idProjet=:arg1");
query.setParameter("arg1", idProjet);
em.flush();
List<Referentiel> resultList = query.getResultList();
return resultList;
}
任何幫助不勝感激。
你有你的項目中的json jar或依賴項嗎?你是否將json轉換器加入了spring?你能告訴你如何配置你的控制器嗎? – xyz
我的項目總是完美的工作,我只有當我使用複合鍵時,這個問題,這不是一個配置問題 – SuperGirl
是Projet也Serializable? – xyz