Как создать Clob с помощью Entity Manager, необходимого для вызова хранимой процедуры в базе данных Oracle? - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь вызвать хранимую процедуру Oracle, которая имеет Clob для входного аргумента.Я использую EntityManager для подключения к нашей БД.Я не знаю, как инициализировать переменную Clob (смотрите код ниже).

Это наш код:

@PersistenceContext(unitName = "oracledb")
private EntityManager entityManager;

....

StoredProcedureQuery query =
    entityManager.createStoredProcedureQuery("procedure1");
query.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN);
query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
query.registerStoredProcedureParameter(3, Clob.class, ParameterMode.IN);

query.setParameter(1, data1);
query.setParameter(2, data2);

Clob clob //<---how to initialize this CLOB???
clob.setString(1, data3);
query.setParameter(3, clob);

query.execute();

Как инициализировать Clob или как получить соединениеиз EntityManager, чтобы я мог позвонить

connection.createClob()

1 Ответ

0 голосов
/ 30 мая 2018

Если вы используете Hibernate, вы можете легко создать Clob:

String data3 = "whatever";
Clob clob = org.hibernate.engine.jdbc.NonContextualLobCreator.INSTANCE.createClob( data3 );
...