Ich habe zwei Tabellen (Kategorie und Unterkategorie)Vorschlag auf Hibernate Notwendigkeit für die Anforderung
Hier ist meine Kategorie Model
@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;
}
und Eingangs
record 1:
{"subcategory":"ss" , "category":{ "category":"upsc"}}
record 2:
{"subcategory":"science" , "category":{ "category":"upsc"}}
es ist das Hinzufügen UPSC als neuer Rekord, wenn ich die verschiedenen Unterkategorien und Kategorien überlasse, bleibt gleich.
Meine Anforderung ist: Wenn ich eine ähnliche Kategorie überlasse, sollte es keinen Datensatz in der Kategorie-Tabelle erstellen.
Fehle ich etwas? Oder gibt es einen anderen Weg, dies zu erreichen?
Erwartetes Ergebnis:
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
Ich habe Ihren Vorschlag versucht, aber kein Glück .. Ist ManyToOne Beziehung für meine Anforderung in Ordnung, oder muss ich eine nach der anderen kümmern? oder eine andere Möglichkeit, meine Anforderung zu erfüllen? – user1942574
Kein Glück? Bedeutet es, dass es noch eine neue Zeile in der Kategorietabelle hinzufügt? Wenn Ihre Kategorie nur eine Unterkategorie hat, sollten Sie die OneToOne-Beziehung beibehalten und das CascadeType.ALL-Attribut einfach entfernen. So wie '@ OneToOne' ... Das Hinzufügen von mehr Code, um zu sehen, was tatsächlich passiert, wird auch helfen. –
Ich habe meine Frage aktualisiert, hoffe, dass es Ihnen hilft – user1942574