春季
使用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