【发布时间】:2020-06-26 11:11:46
【问题描述】:
我正在尝试使用 Spring Boot 中的泛型类在 JPA 中创建 CRUD。但是当我尝试运行程序时,它给出了以下错误。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityRepo': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object
Caused by: java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object
EntityController.java
@Autowired
private EntityService<Myuser, Long> userService;
@RequestMapping(value = "/", method = RequestMethod.GET)
public void saveEntity() {
Myuser user = new Myuser("pawam");
userService.saveEntity(user);
}
实体服务
public interface EntityService<T, ID> {
public T saveEntity(T t);
}
我的用户
@Entity
@Table(name = "myuser")
public class Myuser {
private Long id;
private String name;
public Myuser() {
super();
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Myuser(String name) {
super();
this.name = name;
}
}
EntityRepo.java
@Repository
public interface EntityRepo<T, ID> extends CrudRepository<T, ID> {
}
EntityServiceImpl.java
@Service
public class EntityServiceImpl<T, ID> implements EntityService<T, ID> {
@Autowired
private EntityRepo<T, ID> repo;
@Override
public T saveEntity(T t) {
return repo.save(t);
}
}
application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=12345
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
我尝试在 EntityRepo.java 中将 @Repository 更改为 @NoRepositoryBean。但这也没有用。我能做些什么来解决这个问题?任何帮助表示赞赏。
【问题讨论】:
-
docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/… 示例 1.11 公共接口 UserRepository 扩展 CrudRepository
您的 repo 和其余类应指示用户类 -
@RestRepositories为你做同样的事情
标签: java spring-boot jpa generics crud