2012-04-26 9 views
5

La cosa interessante è che nell'entità:errore di troncamento dei dati - Dati troppo a lungo per la colonna

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; 

Tuttavia, alcuni file (65-70k size) sono inseriti OK, ma la maggior parte di loro ottenere l'errore:

Ho controllato, prima di creare le entità, le dimensioni sono corrette.

+1

E qual è la definizione dello schema per quel tavolo? Non intendo quali sono queste annotazioni JPA ... cosa è in realtà? – DataNucleus

risposta

7

In base al documento JPA "lunghezza" viene utilizzata solo per le proprietà String.

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

Se si sta generando automaticamente il DDL utilizzando uno strumento .. È possibile utilizzare "ColumnDefinition" attributo

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

Wow. Era basato su questa risposta: http://stackoverflow.com/questions/3503841/jpa-mysql-blob-returns-data-too-long/3507664#3507664 ma in realtà è una colonna blob, i file di lavoro sono <65536 byte ... – csaadaam

+0

in questo momento viene generato automaticamente, ma ho appena saputo che utilizzeremo Oracle db e avremo le definizioni dello schema scritte. quindi adesso modificherò semplicemente la colonna in modo che sia media/longblob – csaadaam

Problemi correlati