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));
助けてくれてありがとう