0

カイエンの PK 生成戦略に問題があります。

Apache Cayenne 4.0.B1 で PostgreSQL 9.6 を使用しています。

これはpostgresの私のテーブルです:

create table ui_template (
  id varchar(50) primary key default uuid_generate_v1(),
  path varchar(300) not null,
  type varchar(50) not null
);

次に、Cayenne Modeler で Tools -> Reengineer Database Schema を実行しています。テーブルとエンティティを取得しました。そして今、PK Generation Strategy を Database-Generated に設定して、DB が PK を生成できるようにする必要があります。ObjectContext を介してオブジェクトを挿入すると、すべて正常に動作します。しかし、gradle タスク cdbimport を実行すると、datamap.map.xml ファイルが Generation Strategy のない別のファイルで上書きされます。私が間違っていることを教えてください。

これは私のgradleタスクです

buildscript {
    // add Maven Central repository
    repositories {
        mavenCentral()
    }
    // add Cayenne Gradle Plugin
    dependencies {
        classpath group: 'org.apache.cayenne.plugins', name: 'cayenne-gradle-plugin', version: '4.0.B1'
        classpath group: 'org.postgresql', name: 'postgresql', version: '42.1.3'

    }
}
// apply plugin
apply plugin: 'org.apache.cayenne'

// set default DataMap
cayenne.defaultDataMap 'resources/datamap.map.xml'

// add Cayenne dependencies to your project
dependencies {
    // this is a shortcut for 'org.apache.cayenne:cayenne-server:VERSION_OF_PLUGIN'
    compile cayenne.dependency('server')
    compile cayenne.dependency('java8')
}


cdbimport {
    dataSource {
        driver 'org.postgresql.Driver'
        url 'jdbc:postgresql://localhost:5432/my_db'
        username 'user'
        password 'pass'
    }
}
4

1 に答える 1