我对卡宴的 PK 生成策略有疑问。
我将 PostgreSQL 9.6 与 Apache Cayenne 4.0.B1 一起使用。
这是我在 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 task cdbimport,它会用另一个没有生成策略的文件覆盖我的 datamap.map.xml 文件。请给我建议我做错了什么。
这是我的毕业任务
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'
}
}