JavaPOET-only类有超类,而不是接口

JavaPOET-only类有超类,而不是接口,java,spring-boot,code-generation,javapoet,Java,Spring Boot,Code Generation,Javapoet,我试图使用JavaPoter库为下面的JPA存储库生成代码,但是 我发现“只有类有超级类,没有接口”错误 @Repository public interface UserRepository extends PagingAndSortingRepository<User, Long> { } 生成扩展类的接口的任何解决方案/最佳实践? 谢谢,信息非常清楚: “只有类有超类,没有接口”错误 TypeSpec.Builder.superclass()确实只允许指定类。 要指定接口

我试图使用JavaPoter库为下面的JPA存储库生成代码,但是 我发现“只有类有超级类,没有接口”错误

@Repository 
public interface UserRepository extends PagingAndSortingRepository<User, Long> { 
}
生成扩展类的接口的任何解决方案/最佳实践?
谢谢,

信息非常清楚:

“只有类有超类,没有接口”错误

TypeSpec.Builder.superclass()
确实只允许指定类。
要指定接口,请使用
TypeSpec.Builder.addSuperinterface()

它将提供:

TypeSpec userRepository = TypeSpec.interfaceBuilder("UserRepository")
                .addAnnotation(Repository.class)
                .addModifiers(Modifier.PUBLIC)
                .addSuperinterface(ParameterizedTypeName.get(ClassName.get(PagingAndSortingRepository.class),  
                                                      ClassName.get(User.class),
                                                      ClassName.get(Long.class)))
                .build();
它应该生成以下代码:

@org.springframework.data.repository.Repository
public interface UserRepository extends org.springframework.data.repository.PagingAndSortingRepository<User, java.lang.Long> {
}
@org.springframework.data.repository.repository
公共界面UserRepository扩展了org.springframework.data.repository.paging和sortingRepository{
}
您可以在JavaPOET项目的单元测试中找到完整的示例。

请参阅。

非常感谢它起了作用。。您还可以建议我一种在运行时编译生成的代码的方法,这样它就可以在不重新部署的情况下工作。据我所知,JavaPOET没有这种能力,对吗?如果你想让我发布另一个问题。没关系,不客气。对不起,这个图书馆我知道的不多。您可能会对这个问题感兴趣:。
@org.springframework.data.repository.Repository
public interface UserRepository extends org.springframework.data.repository.PagingAndSortingRepository<User, java.lang.Long> {
}