JPA存储库未加载完整的JSON

时间:2017-11-10 18:09:51

标签: java json rest spring-data-jpa spring-rest

我正在使用REST API,而且我遇到了一些奇怪的问题。 我想以JSON(我的请求对象)的形式返回所有细节和关系。 有我的存储库:

@Repository("requestRepository")
public interface RequestRepository extends JpaRepository<Request, Integer> {

    Request findByTitle(String title);
    List<Request> findAll();
}

我的控制器方法:

enter image description here

{


        @Autowired
        private RequestServiceImpl requestService;

        @RequestMapping("/getall")
        public List<Request> findAll() {
                for (Request req:requestService.findAllRequests()) {
                        System.out.println("Profession:" + req.getProfession().getName());
                }
            return requestService.findAllRequests();
        }
}

映射:

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "profession_id")
private Profession profession;


@OneToMany(fetch = FetchType.LAZY, mappedBy = "profession")
private List<Request> requests;

我还使用@JsonManagedReference和@JsonBackReference与getter。

当我调用http GET时,我收到的JSON如下:

enter image description here

[
    {
        "id": 1,
        "title": "Hydraulik na juz!!!",
        "minPayment": 200,
        "maxPayment": 300,
        "description": "short description",
        "active": 1,
        "creationDate": "2017-11-10"
    },
    {
        "id": 2,
        "title": "Potrzebny kierowca do Warszawy",
        "minPayment": 100,
        "maxPayment": 700,
        "description": "another desc...",
        "active": 1,
        "creationDate": "2017-11-10"
    }
]  

JSON中的职业和请求之间没有关系。即使在我的数据库中,我也看到了它们之间的关系:

enter image description here

我尝试将抓取类型从LAZY更改为EAGER,但它没有帮助。我不知道这个JSON与职业和请求之间没有关系的原因是什么

0 个答案:

没有答案