Liferay BuildService学习随笔

1、在service.xml中,如果要在数据库中生成指定名称的表,则要在<entity>标签中添加一个新的属性table,table的值即为该表的名,否则表名为app_entity的name值。
column标签的类型为java的类型,而不是数据库的类型

2、build-Service创建过程中,可能会报因为内存不足,VM创建失败。
解决方法:关闭计算机的一些空闲应用,释放计算机内存。

3、tomcat服务开启后,部署后才开始建表,而不是build Service。如果没开服务,部署了也不建表。
//每次修改完<entity>中的内容,都要重新build和部署一次。

4、在工程中创建一个portlet,使用以下语句创建一个Book对象(创建的表的名字就是Book)

//在数据库的对应表中新增或更新一条数据。触发一次该方法,数据库中生成一条新数据。
Book book=BookLocalServiceUtil.createBook(CounterLocalServiceUtil.increment());
//生成的是一个长整形,保证在全局中是唯一的,由liferay维护
//下面就是setAttribute(省略),然后更新到数据库。
BookLocalServiceUtil.updateBook(book);

//可以通过Book对象或者bookId来删除数据库中的数据。代码如下所示:
BookLocalServiceUtil.deleteBook(book);
BookLocalServiceUtil.deleteBook(bookId);

//BookLocalServiceUtil这个类本身具有一些简单的增删改查方法。但是,复杂的方法需要自己手动创建。

5、简单查询:使用finder,查询结果为一个集合或单条记录,
首先,在service.xml中,在<entity>标签中创建标签<finder>
<finder name="Name" return-type="Collection">        //return-type="Collection"意思为返回的值为集合。
                                                     //如果为实体的名称,比如这里为Book,则返回的为单条记录。
	<finder-column name="bookId" />     //name值必须为表中已经存在的字段
</finder>

//上面的name值用来构建方法名,findBy+name值(固定写法)
public List<Book> findByName(long bookId)   //这个方法需要在src的service.impl包的 BookLocalServiceImpl.java类中创建一个方法封装一下该方法。
在BookLocalServiceImpl.java类中,如下:
public Book getBookByBookId(long bookId){
	return bookPersistence.findByName(bookId);
}

//方法封装完后要执行一下 buildService,将新写的方法添加到接口中。
//finder为创建一个索引,加快数据查询速度。
使用背景:从大量数据中取少量数据,简单的查询,使用finder

6、build Service的版本必须低于数据库中表记录的版本。
工程中版本在文件 service.properties 中查看。
数据库版本在表名为 servicecomponent 的表中查看。
工程中的版本必须必数据库中的版本大。否则工程发布时会报错。

7、groupId是站点ID,companyId是实例Id,用来区分不同的站点和实例

8、复杂查询(和finder没有关系):

在BookLocalServiceImpl.java类中,如下:

public List<Book> searchBook(String name,long groupId){
	//在当前类中,
	DynamicQuery query=this.dynamicQuery();  //相当于SQL语句的 select * from book;
	//在一个portlet或JSP页面上
	DynamicQuery query=DynamicQueryFactoryUtil.forClass(Book.class);


	//下面两句相当于SQL语句 select * from where groupId =22233 and bookName like 
	query.add(PropertyFactoryUtil.forName("groupId").eq(groupId));
	query.add(PropertyFactoryUtil.forName("bookName").like("%"+name+"%"));


	//排序(降序) query.addOrder(OrderFactoryUtil.desc("createDate"));


	return dynamicQuery(query);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值