我正在尝试使用JPA 2(EclipseLink)将UUID用作主键。我正在使用PostgreSQL作为数据库。我的实体声明如下:我有一个Employee表,其PK设置为UUID。我有一个JPA实体映射到员工表,如下所示:
@Entity
public class Employee {
@Id
private String id;
...
...
}
当我调用EntityManager.find(Employee.class, id)时,我从postgres得到了一个异常:
内部异常:org.postgresql.util.PSQLException: ERROR: operator does not exist: uuid = character varying
提示:没有匹配给定名称和参数类型的运算符。您可能需要添加显式类型转换。
我还尝试将Employee类中的id更改为java.util.UUID,但是然后我会得到以下(非常相似的)错误:
内部异常:org.postgresql.util.PSQLException: ERROR: operator does not exist: uuid = bytea 提示:没有匹配给定名称和参数类型的运算符。您可能需要添加显式类型转换。
我真的不知道该如何解决这个问题...有人有什么想法吗?
谢谢!