2

JPAでテーブルを定義するときに「ORGANIZE BY ROW」引数を指定して変更する方法はありますか? 私が取り組んでいるコードは

@Entity
@Table(name = "ANSWERS")
public class AnswerEntity {    
    @Id
    @Column(name = "CLASS")
    private String answerClass;

    @Lob
    @Column(name = "TEXT", unique = false, nullable = false)
    private String answerText;
}

「ORGANIZE BY ROW」に相当するものを追加したいと思います

CREATE TABLE ANSWERS ( CLASS VARCHAR(256), TEXT CLOB(1000000) NOT NULL ) ORGANIZE BY ROW;
4

1 に答える 1

1

org.apache.openjpa.jdbc.sql.DB2Dictionary をサブクラス化してオーバーライドできるようです。

getCreateTableSQL

public String[] getCreateTableSQL(Table table) 一連の SQL ステートメントを返し、列を備えた指定されたテーブルを作成します。インデックスと制約は別々に作成されます。

public class CutomDB2Dictionary extends DB2Dictionary{

    @Override
    public String getCreateTableSQL(Table table){
        String sql = super.getCreateTableSQL(table);

        if(table.getName().equalsIgnoreCase("ANSWERS")){
            sql += " ORGANIZE BY ROW";
        }

        return sql;
    }
}

config でカスタム DB2 ディクショナリを指定します。

<property name="openjpa.jdbc.DBDictionary" value="com.test.CutomDB2Dictionary "/>
于 2016-05-24T21:26:49.537 に答える