2017-03-06 2 views
0

Ich habe eine übergeordnete Entität wie folgt:Shop Dependent JPA Entity als JSON Spalte In geordnete Entität

@Entity 
public class Parent implements Serializable { 
    @Id 
    private String id; 

    @Convert(converter = ChildConverter.class) 
    private Collection<Child> children; 
    ... 
} 

Und das Kind Entität wie so definiert:

@Entity 
public class Child implements Serializable { 
    @Id 
    private String id; 
    ... 
} 

Allerdings möchte ich meine Child Entität zu sein gespeichert nicht in einer eigenen Tabelle, sondern als eine (JSON) -Spalte in der Parent Tabelle. Der Grund, warum ich dies tun möchte, ist, weil die Entität Child wenig Daten enthält und ich fühle mich, als ob sie keine eigene Tabelle garantiert. Ist dies für JPA möglich?

aktualisieren:

Am Ende habe ich beschlossen, einfach nicht die Child Klasse mit @Entity mit Anmerkungen versehen. Aber das Problem ist, dass ich Entität Constraints ohne JPA Hilfe erzwingen muss.

+0

Wenn die Sammlung eines Unternehmens dann die eine Beziehung sein muss, und so '@ OneToMany' /' @ ManyToMany'. Sie können einen AttributeConverter nur verwenden, wenn der Elementtyp keine Entität ist (z. B. Zeichenfolge, Datum usw.) –

Antwort

0

Sie benötigen noch eine Tabelle zum Speichern der untergeordneten Elemente, da Sie eine Sammlung in der übergeordneten Klasse verwenden.

Sie können @Embeddable-Annotation für Child-Klasse und @ElementCollection und @CollectionTable für untergeordnete Collection in der Parent-Klasse verwenden.

@Embeddable 
public class Child implements Serializable { 
    @Id 
    private String id; 
    ... 
} 
@Entity 
public class Parent implements Serializable { 
    @Id 
    private String id; 

    @Convert(converter = ChildConverter.class) 
    @ElementCollection 
    @CollectionTable(
     name="CHILD", 
     [email protected](name="PARENT_ID") 
    private Collection<Child> children; 
    ... 
} 
+0

Ah. Aber das würde mich immer noch mit einem Tisch für 'Child'-Objekte belassen, oder? –

+0

Ja, Sie haben Recht. –

Verwandte Themen