2016-05-24 18 views
2

JPAでテーブルを定義するときに "ORGANIZE BY ROW"引数を指定する方法はありますか?私が働いているコードは、私はあなたがorg.apache.openjpa.jdbcをサブクラス化することができようにJPA ORGANIZE BY ROWで@Tableを定義する方法

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

を、あなたはおそらくの物理的な実装の詳細を混在させることはできません(それがある場合、私は知りません) JPAが提供する抽象概念を持つデータベーステーブル。 – mustaccio

答えて

1

ルックスに「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; 
} 

です。 sql.DB2Dictionaryとオーバーライド:

getCreateTableSQL

パブリック文字列[] getCreateTableSQL(表テーブル) 一連の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 "/> 
+0

これは、bluemixでjavaee7.0と一緒に使ってみましたか? DashDBを使用しているJPAでこれを動作させることはできません。 DashDBはデフォルトで列で整理し、JPAはそれでうまく機能しません。だから私は行ごとに整理でクエリを作成するtryignです。あなたのソリューションがdashdbで動作することを期待していましたが、動作させることができませんでした。助けてください。 –

+0

これをBluemixサポートのクエリとして呼び出すことをお勧めします。これは「すぐに使える」ものでなければならないため、根本的な製品の問題があります。 –

+0

mavenパッケージはDB2Dictionaryクラスですか? – Mindaugas

関連する問題