Apache Cayenne:处理 Postgresql 枚举类型

Posted

技术标签:

【中文标题】Apache Cayenne:处理 Postgresql 枚举类型【英文标题】:Apache Cayenne: Handling Postgresql enum types 【发布时间】:2013-09-13 02:24:10 【问题描述】:

我有一个名为“foo”的数据库类型,定义如下:

CREATE TYPE foo AS ENUM('foo','bar','baz');

当我通过 Apache Cayenne Modeler 为我的表生成类时,我收到一条错误消息,指出该字段未定义。来一探究竟,没有为这个字段生成类型。

如何在 java 端实现 postgresql 枚举类型,以便 Cayenne 正确处理它们?

【问题讨论】:

【参考方案1】:

虽然 Cayenne 在猜测枚举类型方面应该做得更好,但您可以自己轻松解决这个问题。在 CayenneModeler 中,将 DbEntity 的列类型更改为 VARCHAR。在 ObjEntity 方面,您可以将其映射为字符串,或者您可以创建一个 Java 枚举来匹配您的数据库枚举,然后映射到那个。

【讨论】:

以上是关于Apache Cayenne:处理 Postgresql 枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

Apache Cayenne“类未与 Cayenne 映射”

Apache Cayenne 将数据从非 Cayenne 应用程序插入数据库

Apache-Cayenne 自定义查询结果

使用 Apache Cayenne 批量插入数据库表

Apache Cayenne:java.io.StreamCorruptedException

如何让 Apache Cayenne 尊重数据库默认设置?