2017-01-07 130 views
1

我有兩個表(類別和子類別)需要對休眠建議的要求

這裏是我的分類模型

@Table(name = "category") 

public class Category { 

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

    @Column(name = "category" , unique = true) 
    @JsonProperty("category") 
    private String mCategory; 
    } 



public class SubCategory { 

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

    @Column(name = "subcategory") 
    @JsonProperty("subcategory") 
    private String mSubCategory; 

    @OneToMany 
    @JoinColumn(name="category_id") 
    private Category category; 
} 

和輸入

record 1: 
{"subcategory":"ss" , "category":{ "category":"upsc"}} 
record 2: 
{"subcategory":"science" , "category":{ "category":"upsc"}} 

它被添加UPSC爲新紀錄,只要我通過不同的子類別和類別保持不變。

我的要求是:當我通過類似的類別,然後將它不應該建立在分類表中的記錄。

我錯過了什麼?或者還有其他方法可以實現嗎?

預期結果:

Category table > 1 record > category : upsc , category_Id : 1 

SubCategory table > 2 records > 
     subcategoty : science , category_Id : 1 , subcategory_id : 1 
     subcategoty : ss, category_Id : 1 , subcategory_id : 2 

回答

0

爲什麼你有一個OneToOne關係?看到你提供的輸入應該是我下面的。

Entity 
@Table(name = "sub_category") 
public class SubCategory { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "subcategory_id") 
    private int subCategoryId; 

    @Column(name = "subcategory") 
    private String subCategory; 

    @ManyToOne 
    @JoinColumn(name = "category_id") 
    private Category category; 
} 

是你的分類類的地方嗎?

Entity 
@Table(name = "category") 
public class Category{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "category_id") 
    private int categoryId; 

    @Column(name = "category") 
    private String category; 
} 

現在不應該向Category類添加新記錄。 您還必須刪除CascadeType.ALL,它指示Hibernate保存所有關聯。

+0

我也想你的建議,但沒有運氣。是多對一的關係是好的我的要求或我需要人照顧嗎?或以其他方式達到我的要求? – user1942574

+0

沒有運氣?這意味着它仍然在類別表中添加一個新行? 如果您的類別只有一個子類別,您應該保持OneToOne關係並簡單地移除CascadeType.ALL屬性。像'@ OneToOne'一樣......添加更多代碼以查看實際發生的事情也會有所幫助。 –

+0

我已更新我的問題,希望它可以幫助你 – user1942574