我已经使用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