метод слияния менеджера сущностей для обновления поля BLOB-объектов - PullRequest
0 голосов
/ 04 августа 2010
public void uploadFile(ActionEvent evt)throws Exception{
InputFile inputFile=(InputFile)evt.getSource();
    byteArrayOutputStream=new ByteArrayOutputStream();
    ObjectOutputStream objectOutputStream=new ObjectOutputStream(byteArrayOutputStream);
    objectOutputStream.writeObject(inputFile.getFile());

    reportTemplate.setTemplatePath(inputFile.getFilename());
reportTemplate.setTemplateData(Hibernate.createBlob(byteArrayOutputStream.toByteArray()));
        this.reportTemplate=  reportFacadeLocal.createReportTemplate(reportTemplate);

} Я использую EJB 3.0 и использую метод persist класса EntityManager для создания записи в базе данных.если я просто объясню код, чем reportTemplate будет экземпляром объекта управления данными, поле templateData компонента управления данными будет иметь тип blob. Код, описанный выше, работает нормально и создает запись в базе данных.

При обновлении записи все поля, кроме BLOB, возниклиполя обновляются.Я использую метод слияния EntityManager для обновления записи.

1 Ответ

1 голос
/ 04 августа 2010

Попробуйте использовать entityManager.createNativequery (SomeQuery) или используйте entityManager.createNamedQuery (SomeQuery) вместо непосредственного использования метода entityManager.merge (Object) для обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...