在我的数据库中,有一个称为ShopType
的类型,它是('Pizzeria','Pub','Cafe')
的枚举。在Java中,我想执行以下查询:“ SELECT * FROM myTable WHERE myType = ?
”我做了一个preparedStatement:
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, type);
但是我得到一个例外:ERROR: operator does not exist: ShopType = character varying
我该如何解决?
枚举不是关系模型的一部分(它是模型的OO扩展,使用枚举类型,甚至不是第一个范式)。>>
关系的方法是使用值创建域表,然后声明从表到域表的外键。之后,您的查询将按预期工作。