【发布时间】:2017-03-30 16:26:54
【问题描述】:
我不知道为什么 Spring 不喜欢我的代码:
我有Entry.java:
@Entity
@Table(name = "entries")
public class Entry {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "text")
private String text;
}
EntryDao.java:
public interface EntryDao extends JpaRepository<Entry, Long> {
List<Entry> findAllEntries();
}
EntryService.java:
@Service
public interface EntryService {
List<Entry> findAllEntries();
}
EntryServiceImpl.java:
public class EntryServiceImpl implements EntryService {
private EntryDao entryDao;
private SessionFactory sessionFactory;
@Override
@SuppressWarnings("unchecked")
public List<Entry> findAllEntries() {
Session session = this.sessionFactory.getCurrentSession();
List<Entry> entries = session.createQuery("from entries").list();
return entries;
}
}
这段代码给了我一个错误:
org.springframework.beans.factory.BeanCreationException:创建名为“entryDao”的bean时出错:调用init方法失败;嵌套异常是 org.springframework.data.mapping.PropertyReferenceException: No property findAllEntries found for type Entry!
我不明白如何处理这个错误以及为什么会发生这个错误。
【问题讨论】:
-
将
@Service放在实施中 -
@Ramanlfc 不,没有帮助
-
EntryDao实现在哪里 -
为什么要在服务类中访问数据库?应该在 dao 层完成。
-
JPA 无法解析您的方法
List<Entry> findAllEntries();。顺便说一句,JPA 已经有一个方法findAll()可以为您提供表中的所有行。