2016-07-02 4 views
0

のBLOBファイルを保存するためにどのように私はこのEntityクラスにデータベース

@Entity 
public class ScannedFile { 

    @Column(nullable = true) 
    private Blob content; 

    @Column(nullable = true) 
    private byte[] photo; 
} 

を持っていると私は、データベース内の画像ファイルを保存しようとしました。私は2つの解決策を見つけ、両方を試しました。しかし誰も私のために働いていません。アップロード写真がデータベースに保存されていない:ここで私は、バイト配列

private Part file1; 

public String upload() throws IOException{ 
    InputStream inputStream = file1.getInputStream(); 
    ScannedFile created = new ScannedFile(); 
    created.setId(this.scannedFile.getId()); 
    byte[] photo = IOUtils.toByteArray(inputStream); 
    created.setPhoto(photo); 
    ScannedFile newScannedFile = this.scannedFileRepository.save(created);   
} 

問題を使用して

1を試みたものです。しかし、それは間違いもない。私はここで何が欠けているのですか?ブロブ

を使用して

2.

private static void initSession() { Configuration configuration = new Configuration().configure(); serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); session = sessionFactory.openSession(); session.beginTransaction(); } private static void endSession() { session.getTransaction().commit(); session.close(); StandardServiceRegistryBuilder.destroy(serviceRegistry); } private Part file1; public String upload() throws IOException{ Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); InputStream inputStream = file1.getInputStream(); Blob blob = Hibernate.getLobCreator(session).createBlob(inputStream, 200); ScannedFile created = new ScannedFile(); created.setContent(blob); ScannedFile newScannedFile = this.scannedFileRepository.save(created); endSession(); } 

問題:私は、このエラーhibernate.cfg.xml not foundを取得します。しかし、私は本当にこのXMLファイルを使用したくありません。では、どうすればこのエラーを取り除き、アップロードしたイメージをデータベースに保存することができますか?

注:私は今、春とjsfを数日間学習しています。私は同じアプリケーションでjsfとspringの両方を使用しています。私もh2データベースを使用しています。

+0

ここで使用している 'テーブル 'を教えてください。 –

+0

ScannedFileがテーブルです。私はh2のコンソールからそれを確認した –

答えて

0

問題があります。 @Entity@Lobを使用してください。private byte[] photo;

+0

私はすでにそれを試みたが、まだ何もデータベースに保存されていません –