Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA映射没有提供所需的输出_Java_Hibernate_Jpa_Mapping - Fatal编程技术网

Java JPA映射没有提供所需的输出

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对象。但它没有典当品的清单。只有类型和对象段落存在。 我找不到这有什么问题,我想知道我的映射是

我使用JPA映射一对多映射了2个实体

PawnMaster.java

在这里,当我从pawn master类获得一个对象时,它不会给我一个pawnItems列表。结果是,

{
"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;
}