代码之家  ›  专栏  ›  技术社区  ›  Joel

打开jpa-列定义二进制

  •  2
  • Joel  · 技术社区  · 14 年前

    我正在尝试将openjpa中的列类型设置为binary(5),因此使用以下声明:

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

    但是,列始终创建为blob:

    | MY_FIELD   | blob         | YES  |     | NULL    |                |
    

    有什么线索可以让这个工作吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Mike    14 年前

    这是OpenJPA中的一个bug,由 OPENJPA-740 . 我代表您打开了一个错误报告: OPENJPA-1870

        2
  •  -1
  •   Vincent    14 年前

    这个 Hibernate doc 表示要使用@lob注释:

    @lob指示应根据属性类型将属性持久化到blob或clob中: java.sql.clob、character[]、char[]和java.lang.string将保留在CLOB中。 java.sql.blob、byte[]、byte[]和可序列化类型将保留在blob中。

    它与Hibernate很好地工作:使用OpenJPA应该可以,因为 documentation 表示@lob是以“标准JPA方式”处理的。