2017-12-24 15 views
1

私は以下のクラスを持っています。私はquerydslを試してみたいと思います。 intelliJ 2017.3を使用すると、クラスQUserは生成されません。私は私の問題をグーグルで試してみました。それぞれの答えは別のソリューションを提供するようです(一部は動作しませんでした。IntelliJでQueryDslクラスが生成されない

私は、Spring Bootに組み込まれているようなものを使ってクエリを作成しようとしましたが(考えられません、単純にうまくいくようですが、それは見た目からは基本的です)、クエリはうまく動作しますいくつかの設定上の問題(私はmavenとspring noobです)。

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

私はのpom.xmlにこれらの事を追加しました:

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

答えて

0

私は古き良きコードを使用して、Qクラスを生成するために管理しています。これを一度呼び出すと、クラスはtarget/generated-sources/javaに生成されます。これは2行目から最後の行で変更できます。

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()); 

最後の行のApplicationClassは、スプリングアプリケーションを開始するクラスです。

関連する問題