春季

使用Hibernate FetchType.Eager在Resfull API我工作的Spring + Hibernate的project.and两个Entity 类别和产品之间存在一对多的关系,我可以把问题的REST Web服务为产品实体,是孩子类别和通过使用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();

}

}

Category类

@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, “码” :“PRDABC123DEFX”,“名称”:“iphone.5s”,“品牌”:“苹果”,“描述”:“这是最好的q uality mobile“,”unitPrice“:10.0,”quantity“:2,”purchases“:0,”active“:true,”view“:2,”category1“:{”id“:2,”name“移动“,”描述“:”这是移动描述“,”imageUrl“:”CAT_1.png“,”主动“:真,”产品“:[{”id“:1,”code“:”PRDABC123DEFX“ ,“名称”:“iphone.5s”,“品牌”:“苹果”,“描述”:“这是最好的质量手机”,“unitPrice”:10.0,“数量”:2,“购买” “active”:true,“view”:2,“category1”:{“id”:2,“name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1。 PNG”, “主动”:真正的 “产品”:[{ “ID”:1, “代码”: “PRDABC123DEFX”, “名”: “iphone.5s”, “品牌”: “苹果”, “说明” :“这是最好的质量移动”,“单价”:10.0,“数量”:2,“购买”:0,“活跃”:真,“视图”:2,“category1”:{“id”:2 ,“name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“active”:true,“products”:[{“id”:1,代码“:”PRDABC123DEFX“,”名称“:”iphone.5s“,”品牌“:”苹果“,”说明“:”这是最好的质量手机“,”单价“:10.0,”数量“:2, “购物”:0“,一ctive“:true,”view“:2,”category1“:{”id“:2,”name“:”Mobile“,”description“:”这是Mobile的描述“,”imageUrl“:”CAT_1.png ”, “主动”:真正的 “产品”:[{ “ID”:1, “代码”: “PRDABC123DEFX”, “名”: “iphone.5s”, “品牌”: “苹果”, “说明”: “这是最好的质量移动”,“unitPrice”:10.0,“数量”:2,“购买”:0,“活跃”:真,“视图”:2,“category1”:{“id” “name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl”:“CAT_1.png”,“active”:true,“products”:[{“id”:1,“code “:”PRDABC123DEFX“,”名称“:”iphone.5s“,”品牌“:”苹果“,”描述“:”这是最好的质量手机“,”单价“:10.0,”数量“:2,购买“:0,”active“:true,”view“:2,”category1“:{”id“:2,”name“:”Mobile“,”description“:”这是Mobile的描述“,”imageUrl “:” CAT_1.png “ ”主动“:真正的 ”产品“:[{ ”ID“:1, ”代码“: ”PRDABC123DEFX“, ”名“: ”iphone.5s“, ”品牌“:” 苹果“,”description“:”这是最优质的手机“,”unitPrice“:10.0,”quantity“:2,”purchases“:0,”active“:true,”view“:2,”category1“:{ “ID”:2, “名”: “手机”,“DES cription“:”这是Mobile的描述“,”imageUrl“:”CAT_1.png“,”active“:true,”products“:[{”id“:1,”code“:”PRDABC123DEFX“ :“iphone.5s”,“品牌”:“苹果”,“描述”:“这是最好的质量手机”,“单价”:10.0,“数量”:2,“购买”:0,“活跃”: true,“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“数量“:2,”购买“:0,”活跃“:真,”视图“:2,”类别1“:{”id“:2,”名称“ :“Mobile”,“description”:“这是手机的描述”,“imageUrl”:“CAT_1.png”,“active”:true,“products”:[{“id”:1,“code”:“ PRDABC123DEFX“,”名称“:”iphone.5s“,”品牌“:”苹果“,”描述“:”这是最好的质量手机“,”单价“:10.0,”数量“:2,”购买“: 0,“active”:true,“view”:2,“category1”:{“id”:2,“name”:“Mobile”,“description”:“这是Mobile的描述”,“imageUrl” CAT_1。 PNG”, “主动”:真正的 “产品”:[{ “ID”:1, “代码”: “PRDABC123DEFX”, “名”: “iphone.5s”, “品牌”: “苹果”, “说明” :“这是最优质的手机”,“单价”:10。0,“quantity”:2,“purchases”:0,“active”:true,“view”:2,“category1”:{“id”:2,“name”:“Mobile”,“description”}


这是

描述,但我想只有产品表记录

的JsonController类是

@Controller 

public class JsonController {

@Autowired

private productDao productDao;

@RequestMapping(value="/json")

@ResponseBody

public List<product> getAllProducts(){

return productDao.getAllProduct();

}

}

回答:

你应该使用JsonIgnoreProperties忽略序列category1场注释在Product类:

@Entity 

@JsonIgnoreProperties({"category1"})

public class product {

//...

}

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

以上是 春季 的全部内容, 来源链接: utcz.com/qa/267266.html

回到顶部