Java 休眠类型为varbinary的列上的联接实体?

Java 休眠类型为varbinary的列上的联接实体?,java,sql-server,hibernate,Java,Sql Server,Hibernate,我有两个表,它们都有一个名为Token的列,类型为varbinary。当我尝试用下面的代码连接这些实体时,我得到以下异常 com.microsoft.sqlserver.jdbc.SQLServerException:从 不支持从varbinary到BIGINT 当连接到varbinary列时是否会出现这种情况 @Entity(name = "Token1") @Table(name = "tblToken1") public class Token1Entity { @OneToOn

我有两个表,它们都有一个名为
Token
的列,类型为
varbinary
。当我尝试用下面的代码连接这些实体时,我得到以下异常

com.microsoft.sqlserver.jdbc.SQLServerException:从 不支持从varbinary到BIGINT

当连接到
varbinary
列时是否会出现这种情况

@Entity(name = "Token1")
@Table(name = "tblToken1")
public class Token1Entity {

    @OneToOne(fetch = FetchType.EAGER, optional = false)
    @JoinColumn(name = "Token", insertable = false, updatable = false, nullable = true)
    private Token2Entity token2Entity;

// ....

大多数RDBMS不支持连接CLOB/BLOB/BINARY/large字段等,事实上,许多RDBMS甚至不允许您像选择其他列那样选择它们

由于此异常是从数据库本身返回的,因此可以启用sql调试并转储sql语句,或者手动编写一条并以交互方式运行它。我打赌它不会起作用

如果该值真的可以用于连接,那么可能一端的数据类型错误。否则,您将需要找到一个派生键,该键可以充分表示varbinary,并在此基础上进行连接。当然,保持两者同步始终是一个问题,所以不容易,可能不是你想听到的