J'essaie d'intégrer plusieurs instances du même type complextype dans une seule entité, ce qui ne semble pas fonctionner à moins que je ne définisse un nouveau type complextype pour chaque instance. Autant que je puisse me rattraper jusqu'à présent, c'est probablement à cause de la stratégie de nommage hyperjaxb3 par défaut. Existe-t-il un moyen de modifier la stratégie de dénomination hyperjaxb3 par défaut via des annotations (similaire à la définition de la stratégie d'identifiant, par exemple) plutôt que d'ajouter du code au plugin lui-même? Merci, FrederikConfiguration de la stratégie de dénomination Hyperjaxb3
0
A
Répondre
1
Il serait beaucoup plus facile si vous fournissez un exemple de ce que vous essayez de faire: schéma, annotations générées et ce que vous aimeriez avoir généré à la place.
Voici ce que j'ai dans l'un des projets de test. Schéma:
<xs:element name="a" type="aType"/>
<xs:complexType name="aType">
<xs:sequence>
<xs:element name="b0" type="bType" minOccurs="0"/>
<xs:element name="b1" type="bType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bType">
<xs:annotation>
<xs:appinfo>
<hj:embeddable/>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="c" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="999"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="d" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Génère:
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "c", column = @Column(name = "B0_C", length = 999)),
@AttributeOverride(name = "d", column = @Column(name = "B0_D", precision = 10, scale = 0))
})
public BType getB0() {
return b0;
}
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "c", column = @Column(name = "B1_C", length = 999)),
@AttributeOverride(name = "d", column = @Column(name = "B1_D", precision = 10, scale = 0))
})
public BType getB1() {
return b1;
}
Je ne vois pas les collisions de nommage.
MISE À JOUR
Voici quelques liens sur la personnalisation de nommer:
Vérifiez ce guide:
http://confluence.highsource.org/display/HJ3/Customization+Guide
Voici un projet de test qui démontre certaines de ces caractéristiques:
http://java.net/projects/hj3/sources/svn/show/trunk/ejb/tests/cu-one
Vous pouvez également écrire et configurer votre propre stratégie de nommage:
http://java.net/projects/hj3/sources/svn/show/trunk/ejb/tests/custom-naming
Questions connexes
- 1. HyperJaxb3 et xsd: anyType
- 2. Modification de cas pour la génération de schéma à l'aide de la stratégie de dénomination Hibernate
- 3. Convention de dénomination du fichier de configuration Spring
- 4. Meilleure stratégie de configuration pour tester/déployer dans différents environnements
- 5. Compteur de vues de page - Configuration de la base de données et technique/stratégie
- 6. Stratégie de nommage Hibernate
- 7. Convention de dénomination C++
- 8. Zend_Framework - Classe de dénomination
- 9. Convention de dénomination d'imprimante
- 10. Convention de dénomination xmlns
- 11. Incohérence de dénomination
- 12. Convention de dénomination Linq2sql
- 13. Stratégie de basculement de Jenkins
- 14. Conventions de dénomination de fichier
- 15. Convention de dénomination de collection
- 16. Stratégie par défaut. Motif de la stratégie C#
- 17. Suite à une convention de dénomination de configuration de liaison WCF
- 18. Définition de la stratégie CAS
- 19. Emplacement de la stratégie XACML
- 20. Stratégie de chargement Hibernate
- 21. Conventions de dénomination WCA SOA
- 22. Convention de dénomination Variable \ Propriété
- 23. Conventions de dénomination pour MVVM?
- 24. Convention de dénomination Microsoft VB.NET
- 25. conventions de dénomination pour DynamoDB?
- 26. Comportement de dénomination vba ennuyeux
- 27. Conventions de dénomination Ruby/Rails
- 28. problèmes de dénomination dans datatable
- 29. Service Web - dénomination de méthode?
- 30. Contradiction de convention de dénomination de Cakephp?
correcte, je suppose que je suis confus quand la sortie hj3 était pas ce que je pensais, sur un complexType intégré à plusieurs niveaux. Dans l'exemple que vous fournissez, l'ajout d'un troisième complextype intégrable dans bType le marque comme @Transient dans la classe BType, ce qui semble un peu étrange ... Comment les embeddables imbriqués sont-ils traités dans hj3? – Frederik
JPA 1 ne prend pas en charge les Embeddables imbriqués, donc si vous exécutez HJ3 en mode JPA 1, les Embeddables imbriqués sont rendus transitoires. JPA 2 prend cependant en charge les Embeddables imbriqués et HJ3 en mode JPA 2 (disponible dans le courant 0.5.6-SNAPSHOT) le supporte également. Voir ce projet de test: http://java.net/projects/hj3/sources/svn/show/trunk/ejb/tests/embeddable-jpa2 La fonctionnalité est très récente, cependant, il pourrait y avoir quelques problèmes. – lexicore
Merci, je vais essayer l'instantané. – Frederik