grails 数据库--逆向--域类

1.本人grails 版本3.1.5,JDK版本1.8.0_92

2.准备工作 于build.gradle添加插件依赖

       1在dependencies

 

增加  compile 'org.grails.plugins:db-reverse-engineer:4.0.0' 以及数据库启动

     2在buildscript下的dependencies

增加  classpath 'org.grails.plugins:db-reverse-engineer:4.0.0'

2 配置MySQL 数据开放环境

dataSource:...
   dbCreate: none
   dialect: org.hibernate.dialect.MySQL5InnoDBDialect
   driverClassName: com.mysql.jdbc.Driver
   password: reveng
   url: jdbc:mysql://localhost/reveng
   username: reveng
   ...}

3准备数据库(已有可忽略)
CREATE TABLE visit (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  library_id bigint(20) NOT NULL,
  person varchar(255) NOT NULL,
  visit_date datetime NOT NULL,
  PRIMARY KEY (id),
  KEY FK6B04D4BE8E8E739 (library_id),
  CONSTRAINT FK6B04D4BE8E8E739 FOREIGN KEY (library_id) REFERENCES library (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE other (
  username varchar(255) NOT NULL,
  nonstandard_version_name bigint(20) NOT NULL,
  PRIMARY KEY (username)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE user (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  version bigint(20) NOT NULL,
  account_expired bit(1) NOT NULL,
  account_locked bit(1) NOT NULL,
  enabled bit(1) NOT NULL,
  password varchar(255) NOT NULL,
  password_expired bit(1) NOT NULL,
  username varchar(255) NOT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY username (username)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE role (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  version bigint(20) NOT NULL,
  authority varchar(255) NOT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY authority (authority)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE user_role (
  role_id bigint(20) NOT NULL,
  user_id bigint(20) NOT NULL,
  date_updated datetime NOT NULL,
  PRIMARY KEY (role_id,user_id),
  KEY FK143BF46A667AF6FB (role_id),
  KEY FK143BF46ABA5BADB (user_id),
  CONSTRAINT FK143BF46A667AF6FB FOREIGN KEY (role_id) REFERENCES role (id),
  CONSTRAINT FK143BF46ABA5BADB FOREIGN KEY (user_id) REFERENCES user (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE thing (
  thing_id bigint(20) NOT NULL AUTO_INCREMENT,
  version bigint(20) NOT NULL,
  email varchar(255) NOT NULL,
  float_value float NOT NULL,
  name varchar(123) DEFAULT NULL,
  PRIMARY KEY (thing_id),
  UNIQUE KEY email (email)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4添加这些配置选项在grails-app/conf/application.groovy
grails.plugin.reveng.packageName ='com.revengtest'//逆向生成域类的包名
grails.plugin.reveng.versionColumns =[other:'nonstandard_version_name']//version字段
grails.plugin.reveng.manyToManyTables =['user_role']//多对多的表
grails.plugin.reveng.manyToManyBelongsTos =['user_role':'role']//多对多belongto 的配置

5 grails dbReverseEngineer 执行命令

6 检查 生成的域类


英文原文地址http://grails-plugins.github.io/grails-db-reverse-engineer/grails3v4/index.html

猜你喜欢

转载自zjyads.iteye.com/blog/2336138