Во-первых .... У меня есть функция postgres:
CREATE OR REPLACE FUNCTION auth.MyFunction (
platform autorizacion.e_tipo_plataforma, //Enum Type
pAppId varchar,
pVersion integer
)
, когда e_tipo_plataforma
равно:
CREATE TYPE autorizacion.e_tipo_plataforma AS ENUM (
'Web', 'Escritorio', 'Movil', 'Servicio');
Как вы можете видеть параметр для вызова функцииEnum Type
(e_tipo_plataforma)
Я пытаюсь отправить этот EnumType на Postgres CallableStatement
:
String query="{call auth.MyFunction(?,?,?)}";
CallableStatement ps=conn.prepareCall(funcionLlamar);
1-е намерение: ps.setObject("p_tipo_plataforma", usuario.tipoPlataforma);
где
usuario.tipoPlataforma
Ошибка:
java.sql.SQLFeatureNotSupportedException: Метод org.postgresql.jdbc.PgCallableStatement.setObject (String, Object) еще не реализовано.
2-е намерение: ps.setObject(1, usuario.tipoPlataforma.name());
ОШИБКА:
функция auth.MyFunction (изменение символа, изменение символа, целое число) не существует
ОБНОВЛЕНИЕ: 3-е намерение: ps.setObject(1, usuario.tipoPlataforma);
ОШИБКА:
Не могу вывести SQLтип для использования в качестве экземпляра enumerator.TipoPlataforma.Используйте setObject () с явным значением Types, чтобы указать используемый тип.
Вопрос в том, как можно отправить в качестве параметра EnumType, если функция в postgres принимает только этот тип?