Boa noite!
to com um probleminha aqui…
To desenvolvendo um Sistema de INformações, onde em algumas tabelas tenho que salvar a imagem (o professor recomendou que fosse gravado no BD), como fotografias e etc… para imagens pequenas funciona tranquilo, insere, recupera e etc, testei com imagens acima de 2mb, da esse pepino ai embaixo:
To utilizando Netbeans+Java+Hibernate+Postgre onde salvo os dados em bytea[], gostaria de saber se eh melhor salvar em bytea[] ou em Text?
caso text for melhor, alguem saberia como fazer um método pra conversao? ja procurei, mas nao nada!
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at java.util.AbstractMap.toString(AbstractMap.java:493)
at org.hibernate.pretty.Printer.toString(Printer.java:59)
at org.hibernate.pretty.Printer.toString(Printer.java:90)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:97)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at sga.hibernate.configurations.GenericDAO.salvaOuAtualiza(GenericDAO.java:30)
at sga.tela.panel.PanelButton.actionSave(PanelButton.java:185)
at sga.tela.principais.JCadFotos$4.actionPerformed(JCadFotos.java:87)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
eis meu método para conversao da imagem para byte:
public static byte[] imageToBytes(String inFile) {
try {
File file = new File(inFile);
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[(int) file.length()];
fis.read(bytes);
return bytes;
} catch (FileNotFoundException ex) {
Logger.getLogger(Imagem.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Imagem.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}