반응형
olingo v2에서 BLOB와 CLOB를 어떻게 처리합니까?
여기 olingo jpa에서 BLOB와 CLOB를 처리하는 방법에 대한 의사 코드가 있습니다.필요한 가져오기를 의사 코드에 추가했습니다.
package me;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.SQLException;
import javax.sql.rowset.serial.SerialException;
import org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent;
import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
public class OnDBWriteContent implements OnJPAWriteContent {
@Override
public Blob getJPABlob(byte[] binaryData) throws ODataJPARuntimeException {
try {
return new JDBCBlob(binaryData);
} catch (SerialException e) {
ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
} catch (SQLException e) {
ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
}
return null;
}
@Override
public Clob getJPAClob(char[] characterData) throws ODataJPARuntimeException {
try {
return new JDBCClob(new String(characterData));
} catch (SQLException e) {
ODataJPARuntimeException.throwException(ODataJPARuntimeException.INNER_EXCEPTION, e);
}
return null;
}
}
유일한 문제는 제가 어떤 구현도 찾을 수 없었다는 것입니다.JDBCBlob
그리고.JDBCClob
어떻게 구현하거나 일부 수업을 사용할 수 있는지에 대한 제안이 있습니까?
MySQL을 사용하는 경우 추가 정보가 필요합니다.ExceptionInterceptor
Blob 구현과 함께.의 사용자 정의 구현이 가능합니다.ExceptionInterceptor
Blob 필드를 초기화하는 데 사용합니다.
이를 달성하기 위한 코드는 다음과 같습니다.
import java.sql.Blob;
import java.sql.Clob;
import java.util.Properties;
import org.apache.olingo.odata2.jpa.processor.api.OnJPAWriteContent;
import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
import com.mysql.cj.exceptions.ExceptionInterceptor;
import com.mysql.cj.log.Log;
public class CustomOnJPAWriteContent implements OnJPAWriteContent {
@Override
public Blob getJPABlob(byte[] binaryData) throws ODataJPARuntimeException {
return new com.mysql.cj.jdbc.Blob(binaryData, exceptionInterceptor);
}
@Override
public Clob getJPAClob(char[] characterData) throws ODataJPARuntimeException {
return new com.mysql.cj.jdbc.Clob(new String(characterData), exceptionInterceptor);
}
ExceptionInterceptor exceptionInterceptor = new ExceptionInterceptor() {
@Override
public Exception interceptException(Exception sqlEx) {
// TODO Auto-generated method stub
return null;
}
@Override
public ExceptionInterceptor init(Properties props, Log log) {
// TODO Auto-generated method stub
return null;
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
};
}
언급URL : https://stackoverflow.com/questions/62813234/how-to-handle-blob-and-clob-in-olingo-v2
반응형
'programing' 카테고리의 다른 글
Node.js에 있는 파일 간에 변수를 공유하시겠습니까? (0) | 2023.08.29 |
---|---|
PL/SQL 버그입니까? (0) | 2023.08.29 |
ValueError: numpy.ndarray 크기가 변경되었습니다. 이진 비호환성을 나타낼 수 있습니다.C 헤더에서 88이 필요하고 PyObject에서 80이 필요합니다. (0) | 2023.08.29 |
ASP를 사용하는 JSONP.NET 웹 API (0) | 2023.08.29 |
전역 오류 처리를 정의하기 위한 jQuery의 $.ajax() 메서드 랩 (0) | 2023.08.29 |