我正在尝试实现这样的通用DAO,以将其与X实体(ID,代码,描述)非常相似:
@Repository
public interface GenericDao<T> extends JpaRepository<T, Long> {
T findByCode(String code);
T findById(Long id);
}
Run Code Online (Sandbox Code Playgroud)
我的实体之一是这样的:
@Getter
@Setter
@Entity
@Table(name = "TEST")
public class Test {...}
Run Code Online (Sandbox Code Playgroud)
我有一个需要使用Dao的服务:
@Service
public class TestServiceImpl implements TestService {
private GenericDao<Test> testDao;
@Autowired
public TestServiceImpl(GenericDao<Test> testDao) {
this.testDao = testDao;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用SpringBoot启动我的应用程序时,该应用程序无法启动,并且错误是:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class java.lang.Object
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at …Run Code Online (Sandbox Code Playgroud)