Querydsl needs properly encoded List Set, Collection and Map properties in all code generation scenarios.
When using improperly encoded fields or getters you might the following stacktrace:
java.lang.RuntimeException: Caught exception for field com.mysema.query.jdoql.testdomain.Store#products at com.mysema.query.apt.Processor$2.visitType(Processor.java:117) at com.mysema.query.apt.Processor$2.visitType(Processor.java:80) at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:827) at com.mysema.query.apt.Processor.getClassModel(Processor.java:154) at com.mysema.query.apt.Processor.process(Processor.java:191) ... Caused by: java.lang.IllegalArgumentException: Insufficient type arguments for List at com.mysema.query.apt.APTTypeModel.visitDeclared(APTTypeModel.java:112) at com.mysema.query.apt.APTTypeModel.visitDeclared(APTTypeModel.java:40) at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:696) at com.mysema.query.apt.APTTypeModel.<init>(APTTypeModel.java:55) at com.mysema.query.apt.APTTypeModel.get(APTTypeModel.java:48) at com.mysema.query.apt.Processor$2.visitType(Processor.java:114) ... 35 more
Examples of problematic field declarations and their corrections:
private Collection names; // WRONG private Collection<String> names; // RIGHT private Map employeesByName; // WRONG private Map<String,Employee> employeesByName; // RIGHT