カイエンの 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'
}
}