2013-03-10 5 views
0

Я использую Spring Roo + Spring Data + 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;

со следующими config:

<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

Это изменение было введено, чтобы вернуть Builder из getBuilder() в один тип домена. Просто создайте конструктор без аргументов и вызовите конструктор суперкласса с типом домена, для которого вы реализуете репозиторий.

+0

Спасибо Oliver. Готово. Я был просто обеспокоен тем, что это нарушит обновление существующих приложений до текущей версии Spring data jpa ... – balteo

+0

Правильно, поэтому мы представили его в главном выпуске версии (до 1.2 IIRC). –