0

我正在尝试使用 DB2 模式控制 BLOB 列的长度。我的最终目标是让 hibernatetool 为 10M 长的 BLOB 列生成 SQL 文件,并且鉴于粘贴在这里的文件,我总是得到一个 blob(255)。我究竟做错了什么?

build.xml(省略了不太相关的部分):

<taskdef name="hibernatetool"
         classname="org.hibernate.tool.ant.HibernateToolTask"
         classpathref="toolslib" />

<target name="default">
<hibernatetool destdir="./generated">
 <classpath>
  <path location="." />
  <path location="./classes" />
 </classpath>

 <configuration configurationfile="hibernate.cfg.xml"/>
 <hbm2ddl export="false" outputfilename="sql.ddl"/>
</hibernatetool>

休眠.cfg.xml:

<hibernate-configuration>
<session-factory>
  <property name="dialect">org.hibernate.dialect.DB2Dialect</property>
  <!-- Mapping files -->
  <mapping resource="DbContentStream.mapping.xml"/>
</session-factory>
</hibernate-configuration>

DbStreamImpl 映射:

<hibernate-mapping>

    <class name="DbContentStreamImpl"
           table="CONTENT_STREAM">
        <cache usage="read-write"/>
        <id name="id" type="java.lang.Long" access="field">
            <column name="id"/>
            <generator class="native">
            </generator>
        </id>

        <property name="content" type="blob" length="10485760">
            <column name="CONTENT"/>
        </property>
    </class>

</hibernate-mapping>

生成的 SQL 文件是(注意 blob 字段的长度):

create table CONTENT_STREAM (
  id bigint generated by default as identity, 
  CONTENT blob(255), primary key (id));

提前感谢您的帮助

4

0 回答 0