Est-il possible de faire hiberner faire "la bonne chose" pour une certaine valeur de "droite" dans cette situation? La chose est que prop est un UserType avec une représentation différente dans les tables jointes. Dans le tableau A, il est représenté sous la forme d'un entier et dans la table B, il est représenté comme un char. Donc le test eq se traduit par voir si 1 == 'a' plus ou moins, ce qui est faux mais l'objet représenté par 1 ou 'a' devrait être le même donc ils doivent comparer true.UserType rejoindre dans Hibernate
Répondre
(1) Changer le type de données des colonnes qui correspondent à "prop" pour être le même. Cela nécessitera "Faire de DBA votre ami" mais aboutira à une utilisation "prop" UserType cohérente.
(2) Manipulez les différences de type méthode dans égaux()
public boolean equals(Object x, Object y) throws HibernateException {
boolean retValue = false;
if (x == y) retValue = true;
if (x!=null && y!=null){
Character xChar = new Character(x);
Character yChar = new Character(y);
if (xChar.equals(ychar)){
retValue = true;
}
}
return retValue;
}
Est-ce que la jointure en utilisant une expression SQL. De cette façon, vous pouvez faire la conversion de type explicitement dans la requête elle-même.
Je pense que vous pouvez le faire en utilisant une balise <formula>
sur la relation dans votre fichier de mappage.
Par exemple:
<many-to-one name="myClassB" class="ClassB">
<formula>--Some SQL Expression that converts between ClassA.prop and ClassB.prop</formula>
</many-to-one>
Je l'ai utilisé cela pour associer deux tables où l'on utilise un entier, mais associé à un champ char dans une autre table. Ce n'est peut-être pas exactement ce que vous cherchez, mais peut-être que cela vous mettra sur la bonne voie.
- 1. Hibernate charger objet UserType du référentiel
- 2. Hibernate UserType personnalisé ne fonctionne pas
- 3. Hibernate Annotation Rejoindre la question du tableau
- 4. Création d'un Hibernate UserType personnalisé: recherche du nom de la table d'entité actuelle
- 5. Rejoindre 2 'threads' dans javascript
- 6. Aide sql rejoindre
- 7. gauche rejoindre dans les rails/mysql
- 8. Rejoindre et inclure dans Entity Framework
- 9. auto-rejoindre dans google app engine (java)
- 10. Complexe Rejoindre des requêtes dans Rails
- 11. Linq Rejoindre la Question
- 12. Rejoindre la table dérivée
- 13. django gauche rejoindre
- 14. Subsonic 3.0 Left Rejoindre
- 15. cartésienne SQL rejoindre problème
- 16. mysql rejoindre et limiter
- 17. Rejoindre 2 requêtes XPath
- 18. Rejoindre 2 sockets?
- 19. Left outer Rejoindre LINQ
- 20. Besoin d'aide complexe rejoindre
- 21. Hibernate: Persist un objet comme une chaîne?
- 22. Triple rejoindre Ruby on Rails
- 23. MySQL Order by NULL rejoindre
- 24. Rejoindre par datetimefield SQL Server
- 25. rejoindre la requête avec linq
- 26. tsql: comment rejoindre cette table?
- 27. Rejoindre une sous-requête limitée?
- 28. Comment rejoindre 2 IEnumerators génériques
- 29. Rejoindre des documents MS Word
- 30. SQL Rejoindre CASE et OERE
1 n'est pas une option car c'est un problème avec un système hérité utilisant la même base de données. 2. Ne sera pas traduit en sql. –