2013-02-22 40 views
0

我使用的Liferay 6.1的Liferay 6并没有更新的自定义表中创建MySQL中

我创建MySQL中的表所示

create table Book (
    bookId bigint(10) not null primary key, 
    companyId bigint(10) null , 
     userId bigint(10) null , 
    userName VARCHAR(75) 
); 

这是我service.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.1.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_1_0.dtd"> 
<service-builder package-path="com.test"> 
    <author>sai</author> 
    <namespace>Library</namespace> 
    <entity name="Book" local-service="true" remote-service="false"> 
     <column name="bookId" type="long" primary="true" /> 
     <column name="companyId" type="long" /> 
     <column name="userId" type="long" /> 
     <column name="userName" type="String" /> 
    </entity> 
</service-builder> 

这是我的BookLocalServiceImpl类

public class BookLocalServiceImpl extends BookLocalServiceBaseImpl { 
    public Book addBook(long userId, String userName) throws PortalException, 
      SystemException { 
     long bookId = CounterLocalServiceUtil.increment(Book.class.getName()); 
     Book book = bookPersistence.create(bookId); 
     book.setCompanyId(1126); 
     book.setUserId(1126); 
     book.setUserName(title); 
     book = bookPersistence.update(book, false); 
     return book; 
    } 

} 

里面的processAction类,我添加了这样

BookLocalServiceUtil.addBook(userId, userName); 

但问题是,Liferay的框架已通过名称library_book创建一个新表和更新的表。

mysql> select * from library_book; 
+--------+-----------+--------+----------+ 
| bookId | companyId | userId | userName | 
+--------+-----------+--------+----------+ 
|  1 |  1126 | 1126 | saibaba | 
+--------+-----------+--------+----------+ 
1 row in set (0.00 sec) 

凡为我的表簿为空

mysql> select * from Book; 
Empty set (0.00 sec) 

请让我知道如何使表簿被更新,但不library_book

回答

1
Have you created book table in mysql? if yes then mentioned it in service.xml file. 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.1.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_1_0.dtd"> 
<service-builder package-path="com.test"> 
    <author>sai</author> 
    <namespace>Library</namespace> 
    <entity name="Book" local-service="true" remote-service="false" table="book"> 
     <column name="bookId" type="long" primary="true" /> 
     <column name="companyId" type="long" /> 
     <column name="userId" type="long" /> 
     <column name="userName" type="String" /> 
    </entity> 
</service-builder> 
1

在实际创建的实体数据库被命名为[namespace] _ [entityName]。 由于你的命名空间是“库”,而实体是“书”,所以得到的表是“library_book”,所以你得到的是非常正常的

但是,你不需要,也不应该使用搜索mysql命令。在大多数情况下,您应该使用服务构建器提供的“Finder”功能,我建议您在ServiceBulder上完成一个完整的入门教程,您不能错过