2013-09-13 1 views
0

Я использую Spring roo для разработки небольшого веб-приложения. Я использовал команды finder для добавления нескольких API-интерфейсов finder. После удаления Его с цанговым, сгенерированным кодом будет следующим в классе моделиПочему Roo не генерирует методы запросов хранилища Spring для finder

public static TypedQuery<Task> findTasksByAssignedTo(Employee assignedTo) { 
    if (assignedTo == null) throw new IllegalArgumentException("The assignedTo argument is required"); 
    EntityManager em = Task.entityManager(); 
    TypedQuery<Task> q = em.createQuery("SELECT o FROM Task AS o WHERE o.assignedTo = :assignedTo", Task.class); 
    q.setParameter("assignedTo", assignedTo); 
    return q; 
} 

Почему не Ие просто генерировать методы findBy в Repository интерфейса? Или он поддерживает что-то подобное, о котором я не знаю?

ответ

3

Потому что по умолчанию Roo использует Active Record Pattern и не использует DAO.

Active Record Pattern:

Объект, который заворачивает строку в таблице базы данных или представления, инкапсулирует доступ к базе данных, и добавляет логику предметной области на этих данных «

+0

Спасибо за. info.Я бы тогда перефразировал мой вопрос, почему Roo использует Active record pattern, а не DAO? Является ли DAO намного проще? Возможно, я должен задать его как отдельный вопрос. – sidgate

+0

Тогда ваш вопрос не соответствовал бы требованиям переполнения стека для вопрос, и будет выглядеть или закрыто, потому что тогда это «прежде всего основанные на мнениях» – Ralph