Java JPA映射没有提供所需的输出
我使用JPA映射一对多映射了2个实体 PawnMaster.java 在这里,当我从pawn master类获得一个对象时,它不会给我一个pawnItems列表。结果是,Java JPA映射没有提供所需的输出,java,hibernate,jpa,mapping,Java,Hibernate,Jpa,Mapping,我使用JPA映射一对多映射了2个实体 PawnMaster.java 在这里,当我从pawn master类获得一个对象时,它不会给我一个pawnItems列表。结果是, { "id": 22, "branch": { "code": "HAN", "description": "HANWELLA", "isBranch": false }, "pawnItem": [], } 这是我得到的.json对象。但它没有典当品的清单。只有类型和对象段落存在。 我找不到这有什么问题,我想知道我的映射是
{
"id": 22,
"branch": {
"code": "HAN",
"description": "HANWELLA",
"isBranch": false
},
"pawnItem": [],
}
这是我得到的.json对象。但它没有典当品的清单。只有类型和对象段落存在。
我找不到这有什么问题,我想知道我的映射是否有问题。
请帮帮我。多谢各位
好的,尼尔·斯托克顿,谢谢大家的关注,这是我用来检索对象的代码
public Response<PawnMaster> getPawnTicket(final Long pawnTicketNo) {
LOGGER.info("getPawnTicket");
final Response<PawnMaster> response = new Response();
try {
PawnMaster pawnMaster = (PawnMaster) em.createQuery("SELECT pm FROM PawnMaster pm where pm.id =:pawnTicketNo")
.setParameter("pawnTicketNo", pawnTicketNo)
.getSingleResult();
response.setData(pawnMaster);
} catch (NoResultException e) {
LOGGER.error("NoResultException Error : " + e);
}
return response;
}
在这里,我使用HQL作为查询语言。但它的调试时间是显示2个对象。
将joinColumn放入@onetomany too我不想在PawnMaster表中有列。因为我不想在那里有重复的典当师。无论如何,谢谢Frank:这就是JSON,那么检索该对象的JPA代码是什么?JPA管理时填充了哪些字段?这是一个名为debugging的步骤,因此您没有告诉它检索列表字段。在查询中使用joinfetch可以做到这一点;互联网上有大量的文档页面告诉我们如何做到这一点;search@Shamila当使用FetchType.EAGER时,也给了我钻石问题->如果您碰巧使用Jackson作为JSON序列化程序,那么您可以在PawnItem:PawnMaster属性上使用@JsonIgnore属性。
{
"id": 22,
"branch": {
"code": "HAN",
"description": "HANWELLA",
"isBranch": false
},
"pawnItem": [],
}
public Response<PawnMaster> getPawnTicket(final Long pawnTicketNo) {
LOGGER.info("getPawnTicket");
final Response<PawnMaster> response = new Response();
try {
PawnMaster pawnMaster = (PawnMaster) em.createQuery("SELECT pm FROM PawnMaster pm where pm.id =:pawnTicketNo")
.setParameter("pawnTicketNo", pawnTicketNo)
.getSingleResult();
response.setData(pawnMaster);
} catch (NoResultException e) {
LOGGER.error("NoResultException Error : " + e);
}
return response;
}