在liferay 7中如何删除service builder已经生成的数据库table
在Liferay 7中,加了数据库保护机制,你改了service.xml的结构后,重新运行service builder,并不会帮你生成新的数据库表。然后你发现你在数据库中自己手动删除了表后,重新部署项目到liferay portal上去并不会重新生成你想要的表。下面提供三种方法来解决这个问题:
1. 官方方法:db-support-gradle-plugin 用官方提供的gradle插件进行清除
1.1 用liferay IDE建一个gradle类型的service builder项目
1.2 右键项目运行service builder
1.3 部署到liferay portal上(在这里我连的是mysql数据库,用的是portal-ext.properties进行配置的,前面的文章有写到怎么配)
1.4 打开数据库,你会看到你建的表Foo_foo
1.5 我建的项目名是sb,在sb/gradle.build中添加classpath group: "com.liferay", name: "com.liferay.gradle.plugins.db.support", version: "1.0.2"
buildscript {
dependencies {
classpath group: "com.liferay", name: "com.liferay.gradle.plugins", version: "3.1.3"
classpath group: "com.liferay", name: "com.liferay.gradle.plugins.db.support", version: "1.0.2"
}
repositories {
mavenLocal()
maven {
url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
}
}
}
subprojects {
apply plugin: "com.liferay.plugin"
repositories {
mavenLocal()
maven {
url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
}
}
}
1.6 在sb-service/build.gradle中添加dependencies dbSupport group: "mysql", name: "mysql-connector-java", version: "5.1.23"
apply plugin: "com.liferay.portal.tools.db.support"
配置cleanServiceBuilder的参数propertiesFile
apply plugin: "com.liferay.portal.tools.service.builder"
apply plugin: "com.liferay.portal.tools.db.support" dependencies {
compileOnly group: "biz.aQute.bnd", name: "biz.aQute.bndlib", version: "3.1.0"
compileOnly group: "com.liferay", name: "com.liferay.osgi.util", version: "3.0.0"
compileOnly group: "com.liferay", name: "com.liferay.portal.spring.extender", version: "2.0.0"
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.6.0"
compileOnly project(":sb-api")
dbSupport group: "mysql", name: "mysql-connector-java", version: "5.1.23"
} buildService {
apiDir = "../sb-api/src/main/java"
} /*replace the properties file location with your own*/
cleanServiceBuilder {
propertiesFile = "F:/liferay-bundle/liferay-ce-portal-tomcat-7.0-ga3/liferay-ce-portal-7.0-ga3/portal-ext.properties"
} group = "sb"
1.7 刷新Gradle项目,打开gradle tasks可以看到cleanServiceBuilder任务,点击运行即可

1.8 运行成功后打开数据库,你发现你生成的表被删除了。然后重新部署项目,新的表就生成了
2. 简单粗暴也是最简单的方法,直接删除这个Liferay生成的数据库,下次重启的时候会重新生成
在liferay 7中如何删除service builder已经生成的数据库table的更多相关文章
- Liferay开发实战(2):Service Builder生成持久化层,及开发服务层
本文Liferay适用版本:v6.2.ce-ga6版 Liferay的插件体系是:模型-视图-控制器的portlet MVC框架.MVC是一个伟大的用于Web应用程序的设计模式,在实际应用中还应处理持 ...
- 【WPF学习笔记】之如何保存画面上新建的数据到数据库中并且删除画面上的数据和数据库的数据:动画系列之(五)
...... 承接系列四后续: 首先,我要在用户控件2中添加“保存”,“删除”按钮. XAML代码: <UserControl x:Class="User.uc_item" ...
- Liferay7 BPM门户开发之19: 理解Service Builder体系
Service Builder是Liferay为业务开发而设计的模型驱动(model-driven)平台工具,提供一系列的实体类.数据持久化.服务相关的代码自动生成服务.支持Hibernate and ...
- openstack中彻底删除计算节点的操作记录
在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...
- 【Java EE 学习 24 下】【注解在数据库开发中的使用】【反射+注解+动态代理在事务中的应用service层】
一.使用注解可以解决JavaBean和数据库中表名不一致.字段名不一致.字段数量不一致的问题. 1.Sun公司给jdbc提供的注解 @Table.@Column.@Id.@OneToMany.@One ...
- javascript中的删除方法
可能呢再开发的过程中呢使用的不是很多,但是碰上呢可以注意下 1.比如: var x = 10; delete x; console.log(x); 结果是多少,是10,不是异常也不是undefined ...
- GMF中,删除节点和连线的另一种实现
问题 在GMF中,如果需要programmatically删除节点或连线,在google中我们很容易搜索到<GMF中,删除节点和连线的实现>一文(我并不确定这是原创作者的原始链接),很多人 ...
- 你会在C#的类库中添加web service引用吗?
本文并不是什么高深的文章,只是VS2008应用中的一小部分,但小部分你不一定会,要不你试试: 本人对于分布式开发应用的并不多,这次正好有一个项目要应用web service,我的开发环境是vs2008 ...
- 找不到类型{0} 它在 ServiceHost 指令中提供为 Service 特性值
由于我把binding改成wsHttpBinding,在web.config里也改了命名空间 services的类名也改成了跟 web.config对应的命名空间后 在添加引用后,出现了错误: “找不 ...
随机推荐
- [转]C#中的委托和事件(续)
源码下载:http://www.tracefact.net/SourceCode/MoreDelegate.rar C#中的委托和事件(续) 引言 如果你看过了 C#中的委托和事件 一文,我想你对委托 ...
- CA证书制作
目录 手动制作CA证书 1.安装 CFSSL 2.初始化cfssl 3.创建用来生成 CA 文件的 JSON 配置文件 4.创建用来生成 CA 证书签名请求(CSR)的 JSON 配置文件 5.生成C ...
- vue 路由(二级)配置及详细步骤
1.安装插件(可以选择在初始化项目的时候安装) cnpm install vue-router --save-dev 2.将插件全局引入到项目中(main.js) import VueRouter f ...
- 关于python的列表操作(一):取值,增加,修改,删除
# 列表操作 name_list = ["wang", "niu", "bai", "sui"] # 取值 print( ...
- Python的几个高级编程技巧
Python有一些技巧对你来说是新知识,但是还有一些技巧会让你的代码效率大幅提升. 本文总结了一下自己用到的一些Python高级编程技巧,希望对大家有帮助. 列表生成器 a=[1,2,3] [x*x ...
- 数据库访问技术 odbc dao rdo uda jet oledb
一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...
- Hadoop生态系统概况(转)图文并茂说的不错
Hadoop是一个能够对大量数据进行分布式处理的软件框架.具有可靠.高效.可伸缩的特点. Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN. 下图为hadoop的生态 ...
- c/c++ explicit用法
试想一个类,它的构造函数只有一个参数, class test { test( int a ) {} 4 } 这时我想用一个int b = 10初始化它,这当然没问题,但如果你用一个字符例如'c'初始化 ...
- 在rabbitmq操作页面上添加队列、交换器及绑定示图
1.添加队列 2.添加交换器 3.绑定
- 2018-2019年中国CDN市场发展报告:阿里云成为中国CDN市场的领军者
近日,权威ICT市场咨询机构计世资讯(CCW Research)发布<2018-2019年中国CDN市场发展报告>,报告显示,当前,随着新型信息技术在中国不断应用,以及互联网化新业务的快速 ...