2017-12-24 7 views
1

Ich habe die folgende Klasse und ich möchte querydsl ausprobieren und einige grundlegende Abfragen vornehmen. Mit intelliJ 2017.3 wird keine Klasse QSer generiert. Ich habe versucht, mein Problem zu googeln und jede SO-Antwort scheint eine andere Lösung zu bieten (einige funktionierten nicht und einige ich nicht, weil ich diese Dinge noch nie zuvor benutzt hatte) und die meisten Tutorials scheinen ganz andere Dinge zu tun.QueryDsl-Klassen werden nicht in IntelliJ generiert

Ich habe versucht, Anfragen zu machen mit dem, was Spring Boot eingebaut scheint (keine Ahnung, scheint einfach zu funktionieren, aber es ist zu einfach von den Blicken davon) und die Abfragen funktionieren gut, also ich vermute es ist etwas Konfigurationsproblem (ich bin ein Maven und Frühlingsnoob).

// User.java 
@Entity 
@Table(name = "symptoms") 
public class Symptom 
{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @NotNull 
    private String name; 

    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; 
    } 
} 

Ich habe diese Dinge in die pom.xml hinzugefügt:

<dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-apt</artifactId> 
     <version>4.1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-jpa</artifactId> 
     <version>4.1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.25</version> 
    </dependency> 



    <plugin> 
      <groupId>com.mysema.maven</groupId> 
      <artifactId>apt-maven-plugin</artifactId> 
      <version>1.1.3</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>process</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/generated-sources/java</outputDirectory> 
         <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Antwort

0

Ich habe die Q-Klassen good ol‘verwalteten Code zu generieren. Rufen Sie das einfach einmal an und die Klassen werden in target/generated-sources/java generiert. Sie können dies in der vorletzten Zeile ändern.

GenericExporter exporter = new GenericExporter(); 
exporter.setKeywords(Keywords.JPA); 
exporter.setEntityAnnotation(Entity.class); 
exporter.setEmbeddableAnnotation(Embeddable.class); 
exporter.setEmbeddedAnnotation(Embedded.class); 
exporter.setSupertypeAnnotation(MappedSuperclass.class); 
exporter.setSkipAnnotation(Transient.class); 
exporter.setTargetFolder(new File("target/generated-sources/java")); 
exporter.export(ApplicationClass.class.getPackage()); 

In der letzten Zeile, ApplicationClass ist die Klasse, die die Feder-Anwendung startet.

Verwandte Themen