2010-11-03 91 views
2

我想设置一个列的类型在OpenJPA的二进制(5)所以我使用了如下声明:打开JPA - 列定义二进制

@Column(name="MY_FIELD", columnDefinition="BINARY(5)") 
public byte[] getMyField() { 
    return myField; 
} 

然而,始终创建列作为一个blob:

| MY_FIELD | blob   | YES |  | NULL |    | 

任何线索得到这个工作?

回答

2

这是OpenJPA中的一个错误,由OPENJPA-740引入。我已经以你的名义打开了一个错误报告:OPENJPA-1870

+0

好的,谢谢..... – Joel 2010-11-03 16:09:10

-1

Hibernate doc说@Lob注释将被使用:

@Lob指示属性应该以斑点或者根据属性类型的Clob被保留: java.sql.Clob中, Character [],char []和java.lang.String将被保存在Clob中。 java.sql.Blob,Byte [],byte []和可序列化类型将保留在Blob中。

它与Hibernate一起工作很好:对于OpenJPA你应该没问题,因为documentation表示@Lob是以“标准JPA方式”处理的。

+0

但是作为Blob的持久性正是我不想要的。我想持久化为一个MySQL二进制类型@see http://dev.mysql.com/doc/refman/5.0/en/binary-varbinary.html – Joel 2010-11-03 13:17:36