J'ai lu que l'attribut 'length' dans le fichier de mappage d'hibernation pour une colonne de table est facultatif. Est-ce qu'il tronque les données lors de l'insertion dans la base de données si la longueur dépasse la longueur de la colonne? Merci NaynQue fait l'attribut 'length' dans le fichier de mappage d'hibernation?
Répondre
L'attribut length
est utilisé par l'outil de génération DDL pour générer un script avec la taille des colonnes correspondante. C'est tout. Donc non, Hibernate ne tronque pas les données, il essayera simplement d'écrire ce que vous lui dites d'écrire et les instructions d'insertion ou de mise à jour échoueront si les données sont plus longues que ce qui peut tenir dans une colonne donnée.
20.1. Génération automatique de schéma
DDL peut être généré à partir de vos fichiers de mappage par un utilitaire Hibernate. Le schéma généré inclut des contraintes d'intégrité référentielle, des clés primaires et étrangères, pour les tables d'entité et de collection. Des tables et des séquences sont également créées pour les générateurs d'identifiants mappés.
Vous devez spécifier un dialecte SQL via la propriété hibernate.dialect lors de l'utilisation de cet outil, car DDL est très spécifique au fournisseur. D'abord, vous devez personnaliser vos fichiers de mappage pour améliorer le schéma généré. La section suivante couvre la personnalisation du schéma.
20.1.1. Personnalisation du schéma
De nombreux éléments de mappage Hibernate définissent des attributs facultatifs nommés longueur, précision et échelle. Vous pouvez définir la longueur, la précision et l'échelle d'une colonne avec cet attribut.
<property name="zip" length="5"/>
<property name="balance" precision="12" scale="2"/>
de: http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/toolsetguide.html
- 1. Que fait exactement "map.resource" dans le fichier de route?
- 2. Hibernate 'Inverse' dans le fichier de mappage
- 3. Le mappage de type de fichier httphandler nécessite un répertoire virtuel (ou le fait-il?)
- 4. Que fait le touch/untouch dans xcode?
- 5. TextView length
- 6. Que fait le créateur de chaînes?
- 7. Que fait le symbole "@" dans SQL?
- 8. Que fait '@_' dans Perl?
- 9. Que fait le caractère @ dans jQuery?
- 10. Que fait le symbole $ dans VBA?
- 11. Que fait ce vimscript dans le monde?
- 12. Que fait le symbole "@" dans Powershell?
- 13. Que fait '_' dans le code Django?
- 14. Didacticiel sur le fichier de mappage JPA
- 15. Configurer NHibernate avec l'assembly de mappage dll dans un autre répertoire que le fichier de configuration
- 16. Hibernate - Problème dans le fichier de mappage de l'analyse (.hbm.xml)
- 17. foo.split (','). Length! = Nombre de ',' trouvé dans 'foo'?
- 18. Que fait le plugin ragtag?
- 19. Qu'est-ce que $ {imagepath} fait référence dans un fichier CSS?
- 20. Que fait le substrat de Perl?
- 21. GoogleMaps Polyline Length dans V3
- 22. Que fait ce correctif CSS dans un fichier iE7.css?
- 23. Http protocol content-length
- 24. Que fait le premier argument de `type`?
- 25. Que fait le thread de fond GDI +?
- 26. Que fait clearQueue dans jQuery?
- 27. Que fait addListener dans node.js?
- 28. Que fait <() dans Bash?
- 29. Que fait '^' dans C# (Enums)?
- 30. Mappage de requêtes IIS7, extensions de fichier
cool. Je cherchais un moyen de ne pas échouer l'insertion dans le cas où les données sont plus longues que la limite, mais plutôt insérer le contenu coupé. La sous-chaîne de l'entrée dans les méthodes setter de l'objet hibernate est à sens unique. S'il vous plaît opine si c'est bien. – Nayn
@Nayn: Le réglage dans le setter fonctionnera et est probablement la meilleure option. –