11
votes

@Ordercolumn, @Eonetomany & Null Index Colonne pour la collecte

Je suis en train de créer des tables de parents- enfants où l'ordre est préservé. L'exemple 78 de la documentation Hibernate montre comment faire ceci:

@OneToMany(mappedBy="parent")
@OrderColumn(name="order")


0 commentaires

5 Réponses :


8
votes

Le bogue fait référence à hibernate 3.5.3 pendant que la documentation fait référence à hibernate 3.6. C'est à ma compréhension des commentaires que le problème HHH-5390 a été résolu. Quelle version d'hibernate utilisez-vous? Notez que vous devez avoir une colonne avec nom spécifié exacte dans @ordordcouxn .

Voir aussi cette Discussion à propos de cette même Problème et solution de contournement en cas de 3.5.


mise à jour

Apparemment, il reste non pris en charge et il existe un bogue de documentation tel que décrit par HHH-5732 . Je pensais de HHH-5390 que la personne qui a été assignée (idée qui possède < Un href = "https://ibernate.atlassian.net/browse/hhh-5390" rel = "Nofollow Noreferrer"> HHH-5390 ) a accepté de le réparer. Mais il n'est pas clair si et quand ça va se passer.


4 commentaires

Je suis sur Hibernate 3.6.0. Lorsque j'essaie de suivre l'exemple, je reçois l'erreur "Null Index Colonne pour collections". Le problème de la JIRA dit qu'il est pour 3.5.3 et qu'il ne sera pas corrigé, je ne pense donc pas que ce soit un bug qui a été corrigé en 3.6. Le commentaire sur le bogue indique que ce qui est montré pour le bogue est invalide mais ce qui est montré dans la documentation est similaire mais valide.


Apparemment, c'est un bogue de documentation et il n'est toujours pas pris en charge. Voir ma mise à jour.


Merci. Il semble qu'il soit possible d'obtenir la même chose en utilisant les exemples ici: docs.jboss.org/ibernate/stable/annotations/reference/fr/...


Bonjour. J'ai le même problème lorsque vous utilisez des cartes. Je n'ai pas @ordercolumn. Et je reçois toujours cette erreur .. j'ai fait mon onetomany unidirectionnel et ça marche. (PS: dans Eclipselink fonctionne bien depuis le début)



2
votes

faire quelque chose comme ceci: xxx


0 commentaires

3
votes

Pour moi, le point était de définir la colonne déclarée dans @ordordColumn sur NON NULL et avec valeur par défaut 0


3 commentaires

J'étais jusqu'à 2 heures d'essayer de comprendre cela. La documentation fait pas indique que la colonne de commande doit être non nulle. Pouah!


Cela créera des doublons


Cela introduit un problème, si la commande de commande pour toutes les lignes d'enfants est définie sur 0 hibernate ne les renvoie que 1 d'entre eux tout en récupérant.



0
votes

Peut-être que celles-ci peuvent vous aider:

J'ai le même problème avec une ancienne version de hibernate (3.5.6) avec balise @indexcolumn et trouvez une bonne solution de contournement non invasive: essayez de changer votre Liste à définir objet et utilisation hashset au lieu de arraylist . Il semble que les anciennes versions hibernées fonctionnent mieux avec des ensembles.

bonne chance!


0 commentaires

2
votes

MOIN,

Le même problème se produit sur hibernate.core 5.1.4 finale . Utilisation de définir et hashset sur la balise @ordordcolumn (comme Augustin a déclaré) corriger le problème.


0 commentaires