使用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。 –