Ich habe eine vorhandene Datei in der Datenbank und jetzt muss ich ersetzen, dass aus der Datenbank mit einer neuen Datei. Was wäre die HQL-Abfrage, um die bestehende Datei zu entfernen und die neue hinzuzufügen?HQL-Abfrage zum Ersetzen einer vorhandenen Datei aus der Datenbank mit Hibernate
0
A
Antwort
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
Anstatt zu versuchen, die Datenbank mit HQL zu aktualisieren, rufen Sie die persistente UploadFileEntity ab und aktualisieren Sie sie mit den neu hochgeladenen Daten. –
+1
In diesem Fall muss ich das Objekt wieder mit den richtigen Werten füllen? –
Nur um zu klären - die Datei Teil eines Unternehmens (oder ist ein Unternehmen selbst), die von Hibernate verwaltet wird? –
Ich habe die Datei von der JSF-Seite mit dem Tag genommen. Meine managedBean-Klasse speicherte sie als "Teil" -Datei, die in einen Byte-Stream konvertiert und dann in der Datenbank gespeichert wurde. Jetzt möchte ich die bereits hochgeladene Datei durch eine neue ersetzen. –