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

一.什么是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

Liferay开发学习Part6:Service Builder相关推荐

  1. Liferay开发学习(1)

    Liferay 6.1开发学习(一):环境搭建 一.资源准备 以下资源内容可以在Liferay的官方网站下载,1-3在http://www.liferay.com/downloads/liferay- ...

  2. .net开发安卓入门 - Service (服务)

    .net开发安卓入门 - Service Android Service 概述 Service VS Thread (服务和线程之间进行选择) 前台服务 代码 启动前台服务方法 运行效果 后台服务 代 ...

  3. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图

    初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...

  4. vue - blog开发学习5

    vue - blog开发学习5 基本功能和后台联调 1.首页的所有博客 因为是前后台都是本地开发,所以前端vue需要设置proxy:修改/config/index.js中的这个proxyTable p ...

  5. Liferay Portal学习笔记-coldTear

    [原创]Liferay Portal学习笔记(一):安装 一. 简单安装 1)下载并安装 JDK1.5 1.  下载并安装 Windows Platform J2SE(TM) Development ...

  6. liferay 点击build service 出现Cloud not reserve enough space for object heap

    Cloud not reserve enough space for object heap 2013年10月28日 Liferay 评论 4 条 阅读 1,978 views 次 在Liferay中 ...

  7. Redis运维和开发学习笔记(3)redis搭建集群

    Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...

  8. Spring注解驱动开发学习总结8:自动装配注解@Autowire、@Resource、@Inject

    Spring注解驱动开发学习总结8:自动装配注解@Autowire.@Resource.@Inject 1.自动装配@Autowire.@Resource.@Inject 1.1 构建bookDao ...

  9. QT开发学习-第一章-QT简介

    QT简介 一.QT简介 1.QT简介 2.QT优点 二.QT开发工具 1.Qt Creator 2.Qt Designer 3.Qt Linguist 4.Qt Assistant 5.Qmake 6 ...

最新文章

  1. 负载均衡续:万亿流量场景下的负载均衡实践
  2. 理解smart pointer之三:unique_ptr
  3. 用python画漂亮图片-python结合G2绘制精美图形
  4. 阿里云DDoS基础防护详解防护阈值黑洞时间详细说明
  5. 基于机器学习的捡球机器人设计与实现(探索)第5篇——训练并使用Haar分类器(2019-03-02)
  6. 学习设计模式 - 六大基本原则之接口隔离原则
  7. 【简便解法】1035 插入与归并 (25分)_37行代码AC
  8. java面向对象:关键字 —(16)
  9. 张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用
  10. 超好用的自动化测试工具——Python脚本
  11. matlab画收敛曲线,3.26 面收敛处理
  12. PHP实现货币换算的方法
  13. 计算机屏保后无法进入登录界面,Win10锁屏界面无法登录卡在登录状态的应对办法...
  14. window 使用 Edge/Chrome 调试手机 iOS 的 Safari 浏览器
  15. 华为服务器BMC方式安装系统-官方文档解读
  16. java实现高德地图app,Android 高德地图入门demo,最新高德地图实现方法,附源码及apk...
  17. VirtualBox Host-Only Ethernet Adapter 误删问题
  18. storyboard搭建项目_轻松搞定一人一个storyboard开发
  19. Android 应用开发中国大学生挑战赛
  20. 基于java的OA办公管理系统设计(含源文件)

热门文章

  1. java se入门_java SE 入门之运算符(第三篇)
  2. 微服务 注册中心_4.微服务架构的第二个组件:注册中心
  3. excel中如何对矩阵得对角线进行求和_如何利用图卷积网络进行图形深度学习(第2部分)...
  4. verilog时钟翻转怎么写_verilog实时可调时钟代码
  5. 江陵中学2021高考成绩查询,2021高考序幕拉开 荆州38080名考生赴考
  6. python我的世界给予物品指令_我的世界指令给予物品 我的世界指令给予物品是多少...
  7. mysql sqlstate 08001_关于Toad连接DB2的sqlstate=08001错误
  8. dorado 7 怎么样_一点点奶茶怎么样?消费者眼中的网红奶茶
  9. Linux下构建自己的C++共享库并配合pkg-config生成链接选项
  10. 对比损失的PyTorch实现详解