I ont une structure de hiérarchie de classes assez simple qui figure ci-dessous, chaque classe ayant un type sous énumération @DiscriminatorValue, qui fonctionne très bien.problèmes de mapping Hibernate et l'héritage avec @SecondaryTable
classe Résumé:
AbstractNode (classe abstraite mappée sur la table Node)
classes subclassed:
FieldNode (classe simple correspondance avec la table Node ainsi , mais avec une valeur différente de @DiscriminatorValue)
SynonymNode (classe de problèmes, cette classe cartes également à la table de nœud avec une autre valeur @DiscriminatorValue)
mais AUSSI a un attribut @SecondaryTable et a des colonnes supplémentaires, telles que deletedDate, CreatedDate, etc. .. chacun qui correspond à coumns dans la table définie dans l'attribut @SecondaryTable.
Im question vient quand je fais une simple requête de mise en veille prolongée pour cette table Node
Je reçois des erreurs comme:
org.hibernate.exception.GenericJDBCException: Impossible d'exécuter la requête ... trace de la pile ... causée par: java.sql.SQLException: nom de colonne non valide
et dans mes journaux, je peux voir:
Hib ernate: Sélectionnez * de vocab_node où inférieur (nom) comme '%' || ? || '%'
INFO [NullableType.java:132]: impossible de lire la valeur de la colonne de jeu de résultats: DELETED_DATE; Nom de colonne non valide
Je pense qu'il trouve une ligne dans le tableau DB, identifie alors c'est un SynonymNode type de classe (par la colonne @DiscriminatorValue) essaie ensuite de remplir la classe, y compris la table supplémentaire de colonnes mises en correspondance avec le @SecondaryTable.
Comment puis-je dire à deux, à gauche se joindre à la @SecondaryTable, ou l'exclure tout à fait pour cette requête particulière?
Merci beaucoup! Ce problème me tue!
Im en cours d'exécution Hibernate 3.2.1 et Java 1.5
Cheers, Mark
Je dois mentionner que jusqu'à présent mon travail consiste à rejoindre à gauche le @SecondaryTable dans mon SQL afin qu'au moins les valeurs null soient retournées et les mappages sont toujours corrects ... – Mark