8
votes

Stockage des paires de valeur de clé en hibernate | Pouvons-nous utiliser la carte?

J'ai un fichier XML et dans lequel j'ai des paires de valeur clé.Je veux les stocker sous forme de paires de la valeur clé xxx

maintenant je ne sais pas combien de valeur clé sera Venir de xml à l'avance.Comment-je le mapper pour hibernate objet? Je peux le stocker dans la table dans xxx

Comment puis-je mapper pour hiberner objet? Je veux suivre la structure Classe parent { int parentid; Nom de parent de cordes Keyvalue keyval; // comment puis-je le modeler?

}

suis à l'aide de NetBeans IDE.


0 commentaires

3 Réponses :


7
votes

Vous pouvez en effet utiliser une carte: xxx

Vous devez également avoir une contrainte unique sur [parent_id - clé] .


2 commentaires

Peut-il être fait avec une carte . C'est-à-dire que je peux générer directement une carte au lieu de créer la classe wrapper pour la valeur de la clé?


Pourquoi avez-vous besoin de ce @ID dans KeyvaluePair? Pour la clé primaire, le naturel serait le composite du parent_id et de la clé.



5
votes

Vous pouvez également planer directement sur une table sans créer une classe KeyValuePair

pour une propriété de carte avec les paires de la valeur de clé stockées dans my_map_table et définie comme une propriété nommée "Paramètres":

Définir La propriété: xxx

et la table pour stocker la carte: xxx


0 commentaires

5
votes

Si KeyValuePair est strictement détenue par le parent, la meilleure approche serait la suivante:

@Entity
public class Parent {
    @Id
    @GeneratedValue
    private long id;

    @ElementCollection(fetch=FetchType.EAGER)
    @MapKeyColumn(name="key")
    @CollectionTable(name="keyvaluepair", joinColumns= @JoinColumn(name="id"))
    private Map<String, KeyValuePair> keyValuePairMap = 
            new HashMap<String, KeyValuePair>();

    //getter and setter methods 

}

@Embeddable
public class KeyValuePair {

    //no need of declaring key
    //key column will be created by MapKeyColumn

    private String value;

    //getter and setter methods
}


0 commentaires