У меня есть элемент управления загрузкой файлов, с помощью которого пользователь может загружать файл изображения в таблицу базы данных.
В настоящее время я использую в СУБД 1) Postgresql и 2) SQL-сервер
вВ столбце таблицы базы данных postgres для файла я использую bytea типа данных в столбце таблицы базы данных сервера sql для файла. В качестве текста я использую тип данных
Это мой метод
public void uploadRentProofDeclaration(final MultipartFile declarationForm,
final int rentProofInfoId, int year) {
String updateSql = "update plit_landlordinfo" + year
+ " set filename=?,declarationform=? where cid=?";
getJdbcTemplate().execute(updateSql, new PreparedStatementCallback() {
public Object doInPreparedStatement(
final PreparedStatement pSstatement) throws SQLException,
DataAccessException {
pSstatement.setString(1, declarationForm.getOriginalFilename());
try {
pSstatement.setBinaryStream(2, new ByteArrayInputStream(
declarationForm.getBytes()), declarationForm
.getBytes().length);
} catch (IOException e) {
e.printStackTrace();
}
pSstatement.setInt(3, rentProofInfoId);
pSstatement.execute();
return null;
}
});
}
Этот кодотлично работает с postgresql, а также с oracle, но когда я пытаюсь загрузить файл изображения на сервер sql, я получаю эту ошибку.
org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [update plit_landlordinfo2011 set filename=?,declarationform=? where cid=?]; Operand type clash: varbinary is incompatible with text; nested exception is java.sql.SQLException: Operand type clash: varbinary is incompatible with text
может кто-нибудь мне помочь, если я делаю что-то не так и чторешение