在Spring

时间:2017-12-27 19:57:23

标签: java spring hibernate spring-mvc

我正在开发spring + Hibernate项目。两个实体类别和产品之间存在一对多关系,我为产品实体创建了restfull webservices 类别并使用 fetch.Eager ,它会在父记录中重复显示一条记录,但我只想获得产品记录我不知道如何实现这一点。

我的实体课程是 产品类

@Entity
public class product {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    private String code;
    private String name;
    private String brand;
    private String description;
    private Double unitPrice;
    private Integer quantity;
    private Integer purchases;
    @Column(name="is_active")
    private boolean active;
    private Integer view;
    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="category_id")

    private category category1;
    @ManyToOne
    @JoinColumn(name="supplier_id")
    private User user1;
    public product() {

        this.code="PRD"+UUID.randomUUID().toString().substring(25).toUpperCase();

    }
}

类别

@Entity
public class category {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;

    private String name;
    private String description;
    @Column(name="image_url")
    private String imageUrl;
    private boolean active=true;

    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="category1")
    private List<product> products;
}

,结果是

[{“id”:1,“code”:“PRDABC123DEFX”,“name”:“iphone.5s”,“brand”:“Apple”,“description”:“这是最优质的手机”, “单价”:10.0, “量”:2 “购物”:0, “活性”:真, “查看”:2 “类别1”:{ “ID”:2 “名称为”: “移动设备”,” description“:”这是Mobile“,”imageUrl“:”CAT_1.png“,”active“:true,”products“:[{”id“:1,”code“:”PRDABC123DEFX“,”name“ :“iphone.5s”,“品牌”:“Apple”,“描述”:“这是最优质的手机”,“unitPrice”:10.0,“数量”:2,“购买”:0,“有效”: true,“view”:2,“category1”:{“id”:2,“name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“ active“:true,”products“:[{”id“:1,”code“:”PRDABC123DEFX“,”name“:”iphone.5s“,”brand“:”Apple“,”description“:”这是最优质的手机“,”unitPrice“:10.0,”数量“:2,”购买“:0,”有效“:真实,”查看“:2,”类别1“:{”id“:2,”名称“ :“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“active”:true,“products”:[{“id”:1,“code”:“ PRDABC123DEFX”, “名”: “iphone.5s”, “品牌” :“Apple”,“description”:“这是最优质的手机”,“unitPrice”:10.0,“数量”:2,“购买”:0,“有效”:真实,“查看”:2,“类别1 “:{”id“:2,”name“:”Mobile“,”description“:”这是Mobile的描述“,”imageUrl“:”CAT_1.png“,”active“:true,”products“:[ {“id”:1,“code”:“PRDABC123DEFX”,“name”:“iphone.5s”,“品牌”:“Apple”,“description”:“这是最优质的手机”,“unitPrice”: 10.0, “量”:2 “购物”:0, “活性”:真, “查看”:2 “类别1”:{ “ID”:2 “名称为”: “移动设备”, “说明”:”这是Mobile“,”imageUrl“:”CAT_1.png“,”active“:true,”products“的描述:[{”id“:1,”code“:”PRDABC123DEFX“,”name“:”iphone。 5s“,”品牌“:”Apple“,”description“:”这是最优质的手机“,”unitPrice“:10.0,”数量“:2,”购买“:0,”有效“:真实,”查看“:2,”category1“:{”id“:2,”name“:”Mobile“,”description“:”这是Mobile的描述“,”imageUrl“:”CAT_1.png“,”active“:true ,“产品”:[{“id”:1,“代码”:“PRDABC123DEFX”,“名称”:“iphone.5s”,“品牌”:“Apple”,“描述”:“这是最优质的手机“” UNI tPrice “:10.0,” 量 “:2”,购物 “:0,” 活性 “:真,” 查看 “:2”,类别1 “:{” ID “:2”,名称为 “:” 移动设备 “” 说明“:”这是Mobile“,”imageUrl“:”CAT_1.png“,”active“:true,”products“:[{”id“:1,”code“:”PRDABC123DEFX“,”name“: “iphone.5s”,“品牌”:“Apple”,“描述”:“这是最优质的手机”,“unitPrice”:10.0,“数量”:2,“购买”:0,“有效”:真实,“view”:2,“category1”:{“id”:2,“name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“有效“:true,”products“:[{”id“:1,”code“:”PRDABC123DEFX“,”name“:”iphone.5s“,”brand“:”Apple“,”description“:”这是最优质的手机“,”unitPrice“:10.0,”数量“:2,”购买“:0,”有效“:真实,”查看“:2,”类别1“:{”id“:2,”名称“: “Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“active”:true,“products”:[{“id”:1,“code”:“PRDABC123DEFX “,”“名称”:“iphone.5s”,“品牌”:“Apple”,“描述”:“这是最优质的手机”,“unitPrice”:10.0,“数量”:2,“购买”:0 , “主动”:真实的, “观点”: 2,“category1”:{“id”:2,“name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“active”:true,“产品“:[{”id“:1,”代码“:”PRDABC123DEFX“,”名称“:”iphone.5s“,”品牌“:”Apple“,”描述“:”这是最优质的手机“, “单价”:10.0, “量”:2 “购物”:0, “活性”:真, “查看”:2 “类别1”:{ “ID”:2 “名称为”: “移动设备”,”描述“}


这是

的描述

但我只想要产品表记录

JsonController类是

@Controller

public class JsonController {
    @Autowired
     private  productDao productDao;
     @RequestMapping(value="/json")
     @ResponseBody
     public List<product> getAllProducts(){


         return productDao.getAllProduct();
     }



}

1 个答案:

答案 0 :(得分:0)

您应该在category1类中使用JsonIgnoreProperties注释忽略Product字段以进行序列化:

@Entity
@JsonIgnoreProperties({"category1"})
public class product { 

   //...

}

注意:  类名应该(由convention)以大写字母开头。