2012-04-26 3 views
5

La chose intéressante est que, dans l'entité:erreur de troncature données - données trop long pour la colonne

public static final int maxContentSize = 2097152; //2Mb 
@Lob 
@Column(length=maxContentSize) 
private byte[] content; 
@Column(length = 100) 
private String mimetype; 
@Column(length = 50) 
private String fileName; 

Cependant, certains fichiers (65-70k taille) sont insérés OK, mais la plupart d'entre eux obtiennent l'erreur: J'ai vérifié, avant de créer les entités, que les tailles sont correctes.

+1

Et quelle est la définition du schéma de cette table? Je ne veux pas dire ce que sont ces annotations JPA ... qu'est-ce que c'est? – DataNucleus

Répondre

7

Selon le document JPA, "longueur" est uniquement utilisé pour les propriétés de chaîne.

(Optional) The column length. (Applies only if a string-valued column is used.)

Si vous générez automatiquement en utilisant un outil LDD .. vous pouvez utiliser « columnDefinition » attribut

@Column(columnDefinition = "LONGBLOB") 
private byte[] content; 
+1

Wow. Il était basé sur cette réponse: http://stackoverflow.com/questions/3503841/jpa-mysql-blob-returns-data-too-long/3507664#3507664 mais en fait c'est une colonne blob, les fichiers de travail sont <65536 octets ... – csaadaam

+0

maintenant il est automatiquement généré, mais je viens de savoir que nous allons utiliser Oracle DB et nous aurons les définitions de schéma écrites. donc maintenant je vais juste modifier la colonne pour être vraiment moyen/longblob – csaadaam

Questions connexes