使用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();
}
}
您未能发布productDao类的定义,该类是给出错误结果的定义。请注意,比起Java,约定是让类的名字以大写字母开头。所以,你的类应该被命名为Product,Category和ProductDao。 –