У меня есть несколько пользовательских типов. Все они в основном перечисления. Вот пример того, как они выглядят:
CREATE TYPE card_suit AS ENUM
('spades',
'clubs',
'hearts',
'diamonds');
И у меня есть несколько подготовленных выражений на Java, которые выглядят примерно так:
// Setup stuff up here.
sql = "INSERT INTO foo (suit) VALUES (?)";
st.setString(1, 'spades');
st.executeUpdate(sql);
И Java дает мне несколько неприятных исключений вроде этого:
org.postgresql.util.PSQLException: ERROR: column "suit" is of type card_suit but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
Приятно, что они дают мне подсказку, но я точно не знаю, как ей следовать.