打开JPA - 列定义二进制文件

时间:2010-11-03 11:22:07

标签: java jpa openjpa

我正在尝试将OpenJPA中的列类型设置为二进制(5),所以我使用以下声明:

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

但是,该列始终创建为blob:

| MY_FIELD   | blob         | YES  |     | NULL    |                |

有关让它发挥作用的任何线索吗?

2 个答案:

答案 0 :(得分:2)

这是由OPENJPA-740引入的OpenJPA中的错误。我代表您开了一个错误报告:OPENJPA-1870

答案 1 :(得分:-1)

Hibernate doc表示将使用@Lob注释:

  

@Lob表示该属性应该保留在Blob或Clob中,具体取决于属性类型:   java.sql.Clob,Character [],char []和java.lang.String将保存在Clob中。   java.sql.Blob,Byte [],byte []和serializable类型将保存在Blob中。

它适用于Hibernate:对于OpenJPA,它应该没问题,因为documentation说@Lob是以“标准JPA方式”处理的。