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 并覆盖:

获取创建表SQL

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;
    }
}

在配置中指定您的定制 DB2 字典:

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