Open JPA - 列定义二进制文件

发布于 2024-09-30 10:08:59 字数 322 浏览 6 评论 0原文

我试图将 OpenJPA 中的列类型设置为二进制(5),因此我使用以下声明:

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

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

| MY_FIELD   | blob         | YES  |     | NULL    |                |

有关使其正常工作的任何线索吗?

I'm trying to set the type of a column in OpenJPA as binary(5) so I'm using the following declaration:

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

However, the column is always created as a blob:

| MY_FIELD   | blob         | YES  |     | NULL    |                |

Any clues on getting this to work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

囚我心虐我身 2024-10-07 10:08:59

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

This is a bug in OpenJPA, introduced by OPENJPA-740. I've opened a bug report on your behalf: OPENJPA-1870.

凌乱心跳 2024-10-07 10:08:59

Hibernate 文档说要使用 @Lob 注释:

@Lob 表示该属性应持久保存在 Blob 或 Clob 中,具体取决于属性类型:
java.sql.Clob、Character[]、char[] 和 java.lang.String 将持久保存在 Clob 中。
java.sql.Blob、Byte[]、byte[]和可序列化类型将被持久化在Blob中。

它与 Hibernate 配合得很好:使用 OpenJPA 应该没问题,因为 文档说 @Lob 是“以标准 JPA 方式”处理的。

The Hibernate doc says the @Lob annotation is to be used :

@Lob indicates that the property should be persisted in a Blob or a Clob depending on the property type:
java.sql.Clob, Character[], char[] and java.lang.String will be persisted in a Clob.
java.sql.Blob, Byte[], byte[] and serializable type will be persisted in a Blob.

It works nicely with Hibernate: it should be ok for you with OpenJPA, since the documentation says @Lob is handled "in a standard JPA manner".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文