2013-03-10 44 views
0

我用Spring Roo的 + 春数据 + QueryDSL和我有以下类/接口:对于默认构造函数,隐式超级构造函数QueryDslRepositorySupport()未定义。必须定义一个明确的构造

public interface FamilyAdvertisementRepositoryCustom { 
} 

@RooJpaRepository(domainType = FamilyAdvertisement.class) 
public interface FamilyAdvertisementRepository extends FamilyAdvertisementRepositoryCustom { 
} 

public class FamilyAdvertisementRepositoryImpl extends QueryDslRepositorySupport implements FamilyAdvertisementRepositoryCustom { 
    //NO CONSTRUCTOR 
} 

都在下列包:com.bignibou.repository;

有了以下配置:

<repositories base-package="com.bignibou.repository" /> 

但是,我得到t他的错误:

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.2:compile (default) on project bignibou: Compiler errors : [ERROR] error at public class FamilyAdvertisementRepositoryImpl extends QueryDslRepositorySupport implements FamilyAdvertisementRepositoryCustom { [ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [ERROR] /home/julien/Documents/donnees/projets/site-garde-enfants/java/bignibou/src/main/java/com/bignibou/repository/FamilyAdvertisementRepositoryImpl.java:5:0::0 Implicit super constructor QueryDslRepositorySupport() is undefined for default constructor. Must define an explicit constructor 

看来QueryDslRepositorySupport类不再有默认的构造函数,而之前是这样的情况。这是为什么??

我出错了?

回答

3

更改是为了强制将BuildergetBuilder()返回到单个域类型中。只需创建一个没有参数的构造函数,并调用超类的构造函数,并使用您实现该存储库的域类型。

+0

谢谢奥利弗。完成。我只是担心这会打破现有的应用程序升级到当前版本的Spring数据jpa ... – balteo 2013-03-11 11:38:50

+0

正确的,这就是为什么我们将它引入到主要版本(至1.2 IIRC)。 – 2013-03-11 18:13:32

相关问题