Liferay开发学习Part6:Service Builder

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一.什么是Service Builder?
Service Builder是liferay IDE提供的一种代码生成方案,开发人员只需编辑一个数据库实体的描述文件(XML),即可根据XML文件生成Spring层代码、Hibernate层代码、SQL、SQL索引创建文件、Spring和Hibernate的配置文件等,可以提高开发效率

二.使用Service Builder
 1.service.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.0.0//EN" 
"http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
<service-builder package-path="com.sample.portlet.liferay"><author>laiwanshan</author><namespace>Liferay</namespace><entity name="Book" local-service="true" remote-service="true"><!-- PK fields --><column name="bookId" type="long" primary="true"/><!-- Group instance --><column name="groupId" type="long"/><!-- Audit fields --><column name="companyId" type="long"/><column name="userId" type="long"/><column name="userName" type="String"/><column name="createDate" type="Date"/><column name="modifiedDate" type="Date"/><!-- Other fields --><column name="title" type="String"/></entity>
</service-builder>
配置说明:
<service-builder package-path="com.sample.portlet.liferay">
依据这个配置生成目录  WEB-INF/src/com/sample/portlet/library/


<namespace>Liferay</namespace>
Table的前缀,表名为namespace_tablename
<entity name="Book" local-service="true" remote-service="true">
name即为表名;
local-service默认为false,设为true将自动生成本地接口;
remote-service默认为false,设为true将自动生成远程接口。
<column name="title" type="String"/>
column配置表中的字段

2.生成Service

点击按钮即自动生成相应的目录及文件

注意:生成了一大堆类,但,我们只需要关注这4个类
1)BookLocalServiceImpl:这个类中写我们自己的业务逻辑,添加新的方法
2)BookLocalServiceUtile:通过该类调用方法
3)BookServiceImpl:安全检测代码
4)BookImpl:添加方法

3.实现自己的方法
BookLocalServiceImpl类中添加新方法
public class BookLocalServiceImpl extends BookLocalServiceBaseImpl {public Book addBook(long userId,String title) throws PortalException,SystemException {User user = UserUtil.findByPrimaryKey(userId);Date now = new Date();long bookId = CounterLocalServiceUtil.increment(Book.class.getName());Book book = bookPersistence.create(bookId);book.setTitle(title);book.setCompanyId(user.getCompanyId());book.setUserId(user.getUserId());book.setCreateDate(now);book.setModifiedDate(now);return bookPersistence.update(book, false);}}
4.重新生成Servcie,步骤同2
5.调用自己的方法
ThemeDisplay themeDisplay =(ThemeDisplay)actionRequest.getAttribute("THEME_DISPLAY"); 
User u = themeDisplay.getUser();//取得当前用户
Book b = BookLocalServiceUtil.addBook(u.getUserId(), title);



转载于:https://my.oschina.net/laiwanshan/blog/104942

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html+css实现响应式布局入门

什么是响应式布局 响应式布局是Ethan Marcotte在2010年5月份提出的一个概念&#xff0c;简而言之&#xff0c;就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。响应式布局可以为不同终端的用户提供更加舒适的界面…

UNIX-LINUX编程实践教程-第三章-实例代码注解-ls2

一 问题 对ls1的功能进行扩展&#xff0c;以达到类似ll命令的功能。 二 分析 在ls1中&#xff0c;我们利用readdir()函数和dirent结构体来获得目标文件夹内的文件名&#xff08;dirent->d_name&#xff09;。  现在我们借助函数stat()和结构体stat以及上面得到的文件名来获…

ajax入门篇

什么是ajax AJAX即“Asynchronous JavaScript and XML”&#xff08;异步的JavaScript与XML技术&#xff09;&#xff0c;指的是一套综合了多项技术的浏览器端网页开发技术。Ajax的概念由杰西詹姆士贾瑞特所提出[1]。 传统的Web应用允许用户端填写表单&#xff08;form&#…

BJRangeSliderWithProgress

2019独角兽企业重金招聘Python工程师标准>>> BJRangeSliderWithProgress 是一个带范围选择的进度条&#xff0c;我用它来做录音的进度指示&#xff0c;并可在选择的范围内进行回放。 转载:http://www.adobex.com/ios/source/details/00000865.htm 转载于:https://my…

servlet+JQuery ajax以json的形式的验证表单小实例

JQuery $.ajax() $.ajax({type: POST, //请求方式 一般是get&#xff0c;posturl: url , // 这是必需的&#xff0c;规定把请求发送到哪个 URLdata: data , //这个是可选。映射或字符串值。规定连同请求发送到服务器的数据。java中用request.getPara…

JSONObject与GSON的一些常用的方法的使用

通过学习ajax然后接触了Json最后通过json接触到了JSONObject和Google的GSON&#xff0c;下面来一起看看JSONObject和GSON吧。 先附上依赖 //JSONObject依赖<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId>&…

tomcat 启用NIO

从Tomcat6.0以后, Java开发者很容易就可以是用NIO的技术来提升tomcat的并发处理能力。 <Connector port"8080" protocol"HTTP/1.1"connectionTimeout"20000"redirectPort"8443" /> 修改成&#xff1a; <Connector port"…

Mybatis(2)---多表查询

首先数据库表展示 User表 Role角色表 关联User表与Role表关系的user_role表 因为是要串联关系所以需要设置外键&#xff0c;以下是外键展示 工程目录展示 pom.xml依赖配置 <dependencies><dependency><groupId>junit</groupId><artifactId>…

ORA-29702:error occurred in Cluster Group Service operation错误解决

ORA-29702:error occurred in Cluster Group Service operation错误解决作者: djb1008(http://djb1008.itpub.net)发表于: 2011.05.10 15:43分类: Oracle 出处: http://djb1008.itpub.net/post/42280/517654--------------------------------------------------------------- 一…

JavaScript复习使用定时器的简易式诸葛大力轮播图

先上效果图 很简单的代码 先创建个文件夹保存成果的照片&#xff0c;然后通过更改src来用定时器循环这些照片 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"…

搜索分布式

http://blog.sina.com.cn/s/blog_539d361e0100xcy9.html http://stackoverflow.com/questions/6923071/lucene-is-it-the-right-answer-for-huge-index http://www.hpl.hp.com/techreports/2008/HPL-2008-64.html http://www.gossamer-threads.com/lists/lucene/general/58087

复习---使用基础语法实现栈及迭代

上图是最最基本的结构&#xff0c;这次我采用数组实现栈。使用数组实现栈&#xff0c;由于java的数组是固定长度的。所以我需要写一个增加长度的方法。然后就是迭代的问题了。使用数组实现栈的话&#xff0c;我们需要写一个迭代器。不过这个迭代器非常容易实现&#xff0c;只需…

同一个闭区间上有界变差函数的和与积都是有界变差函数

设$f,g$是$[a,b]$上的[有界变差函数],则$fg$也是$[a,b]$上的有界变差函数. 证明&#xff1a;设$P\{x_0,\cdots,x_n\}$是对$[a,b]$的任意分割.由于$f$是$[a,b]$上的有界变差函数&#xff0c;因此$$\sum_{i0}^{n-1}|f(x_{i1})-f(x_i)|<M_1$$且$$\sum_{i0}^{n-1}|g(x_{i1})-g(x…

复习----使用链表实现栈(后进先出)及迭代

使用链表进行模拟栈比用数组好用&#xff0c;考虑的要素也少还方便。 链表结构 private class Node{//链表结构Item item;Node next;}迭代器 private class Iterator implements java.util.Iterator<Item>{//迭代器private Node pfirst;Overridepublic boolean hasNex…

复习----使用链表实现队列(先进先出)及迭代

实现队列比实现栈的会多一点复杂&#xff0c;需要两个标记&#xff0c;first表示队头&#xff0c;last表示队尾。 链表结构 private class Node{Item item;Node next;}迭代器 与实现栈的迭代器一模一样 private class Iterator implements java.util.Iterator<Item>{p…

感冒不吃药

感冒药既治不好感冒也不能加速痊愈&#xff0c;只是缓解症状而已 有两百多种不同的病毒都可以引起普通感冒。还有一种感冒叫流感&#xff0c;比起普通感冒来更严重&#xff0c;可能会多高热、恶心等症状。不过流感是由特定的流感病毒引发&#xff0c;可以通过打疫苗来预防。不管…

复习--linux目录及文件操作

文件及目录的一些操作 你可以使用 man [命令]来查看各个命令的使用文档&#xff0c;如 &#xff1a;man mv 目录查看 目录查看 ls -[alh] [文件或目录名称] 不加 [文件或目录名称]的话默认是当前目录路径 绝对路径 从根目录开始写起&#xff0c;用 /表示根目录 相对路径 ./表示…

RedHat Enterprise AS4安装步骤

//因RDMS使用新版本CentOS6.2 有问题 &#xff0c; 没办法只有装低版本操作系统 &#xff01; 概述 Redhat公司的Enterprise Linux AS系列 &#xff08;以下简称AS系列&#xff09;&#xff0c;其中Fedora Core 是符合GPL协议的免费版本&#xff0c;使用范围广泛。AS是高性能的…

贪心---leetcode-376摆动序列

题目 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为摆动序列。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。少于两个元素的序列也是摆动序列。 例如&#xff0c; [1,7,4,9,2,5] 是一个摆动序列&#xff0c;因为差值 (6,-3,…

[转]我们为什么需要工作流

本文转自&#xff1a;http://www.cnblogs.com/foundation/archive/2009/01/12/1374163.html 这是我的"基于WF设计业务流程平台"的题外篇 以下是这系列的文章列表,写的很痛苦,但我会继续写下去 基于WF设计业务流程平台-架构 基于WF设计业务流程平台-权限体系 基于WF设…