2010-03-26 1 views
1

Ce qui suit est copié à partir du document d'hibernate. (http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e2770)Est-ce que @JoinTable a une propriété de "table" ou pas?

@CollectionOfElements 
    @JoinTable(
      [email protected](name="BoyFavoriteNumbers"), 
      joinColumns = @JoinColumn(name="BoyId") 
    ) 
    @Column(name="favoriteNumber", nullable=false) 

Cependant, quand je mets cela en pratique, je viens de découvrir que @JoinTable n'a pas de propriété « table », au lieu qu'il a une propriété « nom » pour indiquer le nom de la table. Mais j'ai besoin de la propriété "table" pour spécifier les index.

Que se passe-t-il ici? Je suis presque devenu fou!

Répondre

0

Non, cet échantillon n'est pas précis. Au cas où, l'annotation @IndexColumn que vous voyez dans cet exemple n'a rien à voir avec un index de base de données, elle est utilisée pour stocker le numéro d'index d'un élément dans une collection indexée. Mais je suppose que tu es conscient de ça.

En fait, je vous suggère de soulever une question Jira précisant votre cas d'utilisation et votre dialecte de base de données (il seemts que la génération d'un index sur la FK travaille avec certains dialectes, comme MySQL, mais ne pas dire Oracle).

+0

Merci beaucoup! Comment hiberner peut-il se comporter comme un tel cadre? –

+0

@Kent D'accord avec vous. Je peux penser à deux causes. 1. Peut-être pas tellement les gens génèrent vraiment le modèle physique 2. Personne n'a jamais signalé un problème complet avec un test de cas (comme vous devriez le faire, soulignant également le problème dans le document). –

Questions connexes