@ Ввод нескольких DAO

Я бы вставил два DAO в одном классе обслуживания, и я сделал это следующим образом:

@Transactional
public class TestData {

    private final UserDao userDao;
    private final ExerciseDao exerciseDao;

    @Inject
    public TestData(final UserDao userDao,final ExerciseDao exerciseDao) {
        this.userDao = userDao;
        this.exerciseDao = exerciseDao;
    }
}

Это правильный путь?

На самом деле я попытался создать класс TestData для инициализации некоторых записей для базы данных HSQL.

Итак, я ввел два DAO, затем я использовал их для создания пользователя, и это упражнение.

и когда я попытался вызвать HTTP-адрес проблем службы getExercices или getUsers REST, появилась ошибка со статусом 500:

<h2>HTTP ERROR 500</h2> <p>Problem accessing Reason: <pre> Request failed.</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>

1 ответ

Вы хотите услышать, возможно ли ввести 2 поля по 1 аннотации?

Да, это возможно. Вы уже сделали это.

Это хорошая практика?

Лично я предпочитаю инъекции поля / сеттера. В этом случае я не зависим от конструкторов и могу предотвратить ненужный код. Внедрение в конструктор делает ваш код независимым от контейнера. Используете ли вы контейнер CDI (например, Spring) или нет, вы должны инициализировать экземпляр, используя этот конкретный конструктор.

Другие вопросы по тегам