Не повторяйте DAO! Использование универсального DAO

1

Я пытаюсь создать общий DAO, следуя этому: http://www.ibm.com/developerworks/java/library/j-genericdao/index.html

Тем не менее, я придерживаюсь его фактического использования. Там строка, которая выглядит так:

GenericDao dao = (GenericDao);

Я не понимаю, что здесь происходит, в основном в правой части уравнения. Eclipse дает мне две метки на этой строке:

GenericDao является сырым типом и должен быть параметризован. (Это находится на GenericDao слева)

GenericDao не может быть разрешено переменной. (Это на GenericDao справа)

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

(Использование Eclipse Kepler, Hibernate 4.3.5, Spring IDE 3.5, M2E 1.4.1, если это имеет какое-либо значение)

  • 0
    Вы добавили ; самостоятельно
  • 3
    Если у вас все в порядке с Spring и Hibernate, попробуйте Spring-Data JPA. Создание собственных общих даосов для сущностей JPA - это не то, с чем вам нужно больше связываться.
Показать ещё 5 комментариев
Теги:
generics
spring
hibernate

3 ответа

2
Лучший ответ

Если вы посмотрите на приведенный образец кода, там будет разрыв строки. Строка должна читаться как GenericDao dao = (GenericDao) beanFactory.getBean("personDao"); и исправить ошибку об исходном типе, изменить его на GenericDao<Person,Long> dao = (GenericDao<Person, Long>) beanFactory.getBean("personDao"); или что-то близкое к этому, если предположить, что тип первичного ключа - длинный

  • 0
    Вы имеете в виду ПК? Я предположил, что это означает «Первичный ключ», но на самом деле я нигде не смог его найти… Впрочем, я могу ошибаться.
  • 0
    Это наверное так. Благодарю.
Показать ещё 1 комментарий
0

Вся строка в вашем примере

 GenericDao dao = (GenericDao)beanFactory.getBean("personDao");
0

Правильная строка кода:

GenericDao dao = (GenericDao)
 beanFactory.getBean("personDao"); // This should normally be injected

Ещё вопросы

Сообщество Overcoder
Наверх
Меню