2016-05-07 4 views
0

私はデータベースに既存のファイルを持っており、今はデータベースから新しいファイルで置き換える必要があります。既存のファイルを削除して新しいファイルを追加するHQLクエリは何でしょうか?Hibernateを使用してデータベースから既存のファイルを置き換えるためのHQLクエリ

+0

ファイルは、Hibernateによって管理されるエンティティの一部です(またはエンティティ自体です)。 –

+0

タグを使用してJSFページからファイルを取得しました。私のmanagedBeanクラスは、バイトストリームに変換されてデータベースに永続化された 'part'ファイルとして保存しました。今私はすでにアップロードされたファイルを新しいものに置き換えたいと思っています。 –

答えて

0
public void addReplacementFile(UploadReplacementFileBean uploadReplacementFileBean) throws Exception { 

    SessionFactory sessionFactory = HibernateUtility.createSessionFactory(); 
    Session session = null; 
    session = sessionFactory.openSession(); 
    session.beginTransaction(); 


    InputStream input = uploadReplacementFileBean.getFileData().getInputStream(); 
    ByteArrayOutputStream output = new ByteArrayOutputStream(); 
    byte[] buffer = new byte[10240]; 
    for (int length = 0; (length = input.read(buffer)) > 0;) 
     output.write(buffer, 0, length); 


    try { 

     output.flush(); 
     String qs="update UploadFileEntity set fileData=? where fileId=?"; 

     Query query=session.createQuery(qs); 
     query.setParameter(0, output.toByteArray()); 
     query.setParameter(1, uploadReplacementFileBean.getFileId()); 

     query.executeUpdate(); 
     session.getTransaction().commit(); 
     session.close(); 

    }catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 


    } 
+0

HQLでデータベースを更新しようとするのではなく、永続化されたUploadFileEntityを取得し、新しくアップロードされたデータで更新します。 –

+1

その場合、オブジェクトに値を再設定する必要がありますか? –

関連する問題