2013-02-22 1 views
0

Я использую Liferay 6.1Liferay-не Обновление пользовательской Таблицы Созданная в 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 Framework создал новую таблицу по имени 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, вы не можете пропустить это

Смежные вопросы