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>

hibernate.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