2010-08-23 5 views

Répondre

5

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.

+0

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

+0

@Nayn: Le réglage dans le setter fonctionnera et est probablement la meilleure option. –

3

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