2015-06-21 4 views
0

Я хочу написать динамический запрос, который будет удалять значения из строки, которые будут поставляться, т. Е. Содержит, например, строку 6 я хочу удалить только 3 из них. Как я могу достичь этого, используя динамический запрос liferay. Я создаю базу данных книг, и вот эту таблицу я добавил здесь. enter image description hereКак написать динамический запрос на удаление в liferay, который удалит выбранные значения из строки данных в таблице

Теперь я хочу, чтобы удалить описание и AUTHORNAME из второго ряда позволяет say.How я могу сделать это ??? Раньше я делал этим

long bookId = ParamUtil.getLong(actionRequest, "bookId"); 
BookLocalServiceUtil.deleteBook(bookId); 
SessionMessages.add(actionRequest, "deleted-book"); 
_log.info("#################Book Deleted Successfully#########################"); 

Давайте предположим, что BookName, описание и т.д. я могу поставить внутри метода удаления.

ответ

0

Единственный и лучший способ выполнить то, что вы хотите, - это обновить свою сущность. Для этого вам необходимо сначала получить объект, используя DynamicQuery, а затем обновить его, используя уровень сохранения.

Если у вас есть BookId, и это ваш единственный критерий, вы также можете использовать слой persistence для получения компонента вашего объекта.

Для вашей цели, я думаю, что следующий является хорошим решением, в вашем BookLocalServiceImpl:

public void updateDescription(long bookId, String description) throws SystemException { 
    Book updateMe = bookPersistence.fetchByPrimaryKey(bookId); 
    updateMe.setDescription(description); 
    bookPersistence.update(updateMe); 
} 

Затем в контроллере просто вызовите BookLocalServiceUtil.updateDescription("") и вуаля, вы просто очистили описание.