2016-12-21 2 views
1

저는 JOOQ을 처음 사용하고 클래스를 생성하는 데 문제가 있습니다. 나는 다음과 같은 봄 구성의 pom.xml을 가지고Spring JOOQ 생성이 부분적으로 실패합니다.

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.knodeit</groupId> 
    <artifactId>try</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>try</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.2.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.jooq</groupId> 
      <artifactId>jooq</artifactId> 
      <version>3.7.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jooq</groupId> 
      <artifactId>jooq-meta</artifactId> 
      <version>3.7.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jooq</groupId> 
      <artifactId>jooq-codegen</artifactId> 
      <version>3.7.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

    <profiles> 

     <profile> 
      <id>mysql</id> 
      <build> 
       <plugins> 
        <plugin> 

         <groupId>org.jooq</groupId> 
         <artifactId>jooq-codegen-maven</artifactId> 
         <executions> 
          <execution> 
           <goals> 
            <goal>generate</goal> 
           </goals> 
          </execution> 
         </executions> 
         <dependencies> 
          <dependency> 
           <groupId>mysql</groupId> 
           <artifactId>mysql-connector-java</artifactId> 
           <version>${mysql.version}</version> 
          </dependency> 
         </dependencies> 
         <configuration> 
          <jdbc> 
           <driver>com.mysql.jdbc.Driver</driver> 
           <url>jdbc:mysql://localhost:3306</url> 
           <user>root</user> 
           <password>root</password> 

          </jdbc> 
          <generator> 
           <name>org.jooq.util.JavaGenerator</name> 
           <database> 
            <name>org.jooq.util.mysql.MySQLDatabase</name> 
            <includes>.*</includes> 
            <excludes /> 
            <inputSchema>demo</inputSchema> 
           </database> 
           <generate> 
            <relations>true</relations> 
            <deprecated>false</deprecated> 
            <instanceFields>true</instanceFields> 
            <generatedAnnotation>true</generatedAnnotation> 
            <records>true</records> 
            <pojos>true</pojos> 
            <immutablePojos>false</immutablePojos> 
            <interfaces>true</interfaces> 
            <daos>true</daos> 
            <jpaAnnotations>true</jpaAnnotations> 
            <validationAnnotations>true</validationAnnotations> 
            <springAnnotations>true</springAnnotations> 
            <globalObjectReferences>true</globalObjectReferences> 
            <fluentSetters>false</fluentSetters> 
           </generate> 
           <target> 
            <packageName>com.knodeit.jooq.domain</packageName> 
            <directory>jooq</directory> 
           </target> 
          </generator> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 


</project> 

내가 MVN 깨끗한 -P가 데이터베이스에 연결 구성으로 jooq 폴더 아래 클래스의 무리를 생성에는 mysql 설치 실행할 때. 그러나 그 후 나는 같은 오류의 톤을 참조하십시오

[ERROR] /Users/petervandeput/Documents/Development/test/try/jooq/com/knodeit/jooq/domain/tables/records/BookRecord.java:[76,25] cannot find symbol 
[ERROR] symbol: method get(int) 
[ERROR] location: class com.knodeit.jooq.domain.tables.records.BookRecord 
[ERROR] /Users/petervandeput/Documents/Development/test/try/jooq/com/knodeit/jooq/domain/tables/records/BookRecord.java:[210,9] cannot find symbol 
[ERROR] symbol: method set(int,java.lang.Integer) 
[ERROR] location: class com.knodeit.jooq.domain.tables.records.BookRecord 
[ERROR] /Users/petervandeput/Documents/Development/test/try/jooq/com/knodeit/jooq/domain/tables/records/BookRecord.java:[211,9] cannot find symbol 
[ERROR] symbol: method set(int,java.lang.String) 

누군가가 예상대로 MySQL을 스키마에 연결하고 생성하는 100 % 작업의 pom.xml을 제공 할 수 있습니까?

답변

0

생성 된 코드는 jOOQ 3.8을 목표로합니다 (예 : Record.get(int) 방법이있는 경우).

당신의 의존성에서, 당신은 아직이 방법이없는 jOOQ 3.7을 참조하고 있습니다.

귀하의 jOOQ 코드 생성기 버전과 귀하의 jOOQ 런타임 버전이 일치해야합니다. 이 개 솔루션은 여기에 있습니다 :

  1. 이 의존성에서 버전 3.7.4에 대한 참조를 제거하고 봄 부팅에서 참조 된 버전을 사용하는 대신
  2. 명시 적으로 코드 생성 버전으로도 버전 3.7.4을 설정 (현재 생략했습니다)