错误:运算符不存在:字符变化= bytea

时间:2015-01-13 09:14:41

标签: java spring hibernate postgresql spring-security

我有一个基于Spring MVC + Security + Hibernate的项目。 Hibernate和jdbc版本是:

<!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.7.Final</version>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.3-1102-jdbc41</version>
        </dependency>

当我尝试通过Spring Security表单登录时出现这个众所周知的错误。

jan 13, 2015 12:51:05 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: operator does not exist: character varying = bytea

我已经读过,由于PostgreSQL和驱动程序的版本存在差异,可能会发生这种情况,但对我来说似乎没问题。

1 个答案:

答案 0 :(得分:1)

外键错误。使用Hibernate / JPA时,外键应始终指向另一个表的id(主键)。您的外键引用username但它应引用id。作为替代方案,您可以在username表中创建users主键,并相应地更改实体注释。