我正在尝试将OpenJPA中的列类型设置为二进制(5),所以我使用以下声明:
@Column(name="MY_FIELD", columnDefinition="BINARY(5)")
public byte[] getMyField() {
return myField;
}
但是,该列始终创建为blob:
| MY_FIELD | blob | YES | | NULL | |
有关让它发挥作用的任何线索吗?
答案 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方式”处理的。