0

Я сконфигурировал свой проект для поддержки статического ткачества, но он не работает для ленивой загрузки @ManyToOne.Eclipselink статическое ткачество не работает

версия freamwork используется:

  • EclipseLink-2.6.3-M1.jar
  • wildfly 10.0.0
  • JPA 2.0
  • EclipseLink-staticweave-Maven-плагин: 1.0.4

моя конфигурация:

- pom.xml:

      ... 
      <plugin> 
      <artifactId>eclipselink-staticweave-maven-plugin</artifactId> 
      <groupId>au.com.alderaan</groupId> 
      <version>1.0.4</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>weave</goal> 
        </goals> 
        <phase>process-classes</phase> 
        <configuration> 
         <logLevel>ALL</logLevel> 
       <includeProjectClasspath>true</includeProjectClasspath> 
        </configuration> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>org.eclipse.persistence</groupId> 
        <artifactId>eclipselink</artifactId> 
        <version>${eclipslink-version}</version> 
       </dependency> 
      </dependencies> 
      </plugin> 
      ... 

- persistence.xml:

... 
    <validation-mode>NONE</validation-mode> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <shared-cache-mode>NONE</shared-cache-mode> 
    <properties> 
     <property name="eclipselink.target-database" value="MySQL" /> 
     <property name="eclipselink.target-server" value="JBoss" /> 
     <property name="eclipselink.weaving" value="static" /> 
     <!-- LOG DEBUG --> 
     <property name="eclipselink.logging.level.sql" value="FINEST" /> 
     <property name="eclipselink.logging.parameters" value="true" /> 
     <property name="eclipselink.logging.level.transaction" 
      value="FINEST" /> 
     <property name="eclipselink.logging.level" value="FINEST" /> 
     <property name="eclipselink.logging.level.cache" value="FINEST" /> 
    </properties> 
    ... 

- User.java:

  ... 
      @JoinColumn(name = "PARTNER_ID", referencedColumnName = PARTNER_ID", nullable = false) 
      @ManyToOne(optional = false, fetch = FetchType.LAZY) 
      private Partner partnerId; 
      ... 

- Журнал:

      14:14:00,696 INFO [stdout] (default task-14) [EL Fine]: 2016-04-24 14:14:00.696--ServerSession(2107137839)--Connection(1003936572)--Thread(Thread[default task-14,5,main])--SELECT USER_ID, USER_LOGIN, USER_MAIL, USER_PWD, PARTNER_ID FROM user WHERE (USER_LOGIN = ?) 
       14:14:00,696 INFO [stdout] (default task-14) bind => [admin] 
       14:14:00,703 INFO [stdout] (default task-14) [EL Finest]: 2016-04-24 14:14:00.703--ServerSession(2107137839)--Connection(453922073)--Thread(Thread[default task-14,5,main])--Connection released to connection pool [read]. 
       14:14:00,705 INFO [stdout] (default task-14) [EL Finest]: 2016-04-24 14:14:00.705--UnitOfWork(889591992)--Thread(Thread[default task-14,5,main])--Execute query ReadObjectQuery(name="partnerId" referenceClass=Partner) 
       14:14:00,706 INFO [stdout] (default task-14) [EL Finest]: 2016-04-24 14:14:00.706--ServerSession(2107137839)--Connection(1634321100)--Thread(Thread[default task-14,5,main])--Connection acquired from connection pool [read]. 
       14:14:00,706 INFO [stdout] (default task-14) [EL Finest]: 2016-04-24 14:14:00.706--ServerSession(2107137839)--Thread(Thread[default task-14,5,main])--reconnecting to external connection pool 
       14:14:00,706 INFO [stdout] (default task-14) [EL Fine]: 2016-04-24 14:14:00.706--ServerSession(2107137839)--Connection(415563557)--Thread(Thread[default task-14,5,main])--SELECT PARTNER_ID, DISABLED FROM partner WHERE (PARTNER_ID = ?) 
       14:14:00,706 INFO [stdout] (default task-14) bind => [1] 
       14:14:00,852 INFO [stdout] (default task-14) [EL Finest]: 2016-04-24 14:14:00.852--ServerSession(2107137839)--Connection(1992473777)--Thread(Thread[default task-14,5,main])--Connection released to connection pool [read]. 
       14:14:00,853 INFO [stdout] (default task-14) [EL Finer]: 2016-04-24 14:14:00.853--UnitOfWork(889591992)--Thread(Thread[default task-14,5,main])--TX beforeCompletion callback, status=STATUS_ACTIVE 
       14:14:00,853 INFO [stdout] (default task-14) [EL Finer]: 2016-04-24 14:14:00.853--UnitOfWork(889591992)--Thread(Thread[default task-14,5,main])--begin unit of work commit 
       14:14:00,859 INFO [stdout] (default task-14) [EL Finer]: 2016-04-24 14:14:00.859--UnitOfWork(889591992)--Thread(Thread[default task-14,5,main])--TX afterCompletion callback, status=COMMITTED 
       14:14:00,860 INFO [stdout] (default task-14) [EL Finer]: 2016-04-24 14:14:00.86--UnitOfWork(889591992)--Thread(Thread[default task-14,5,main])--end unit of work commit 
       14:14:00,860 INFO [stdout] (default task-14) [EL Finer]: 2016-04-24 14:14:00.86--UnitOfWork(889591992)--Thread(Thread[default task-14,5,main])--release unit of work 
       14:14:00,861 INFO [stdout] (default task-14) [EL Finer]: 2016-04-24 14:14:00.861--ClientSession(1390020981)--Thread(Thread[default task-14,5,main])--client released 

, когда я загрузить пользователь в журнале всегда я вижу запрос, чтобы получить партнер запрашиваемой !! ?

ответ

0

Я думаю, что я нашел эту проблему: первый я использовал последнюю версию плагина 1.0.4:

  <!-- This plugin ensures the EclipseLink static weaving --> 
      <plugin> 
       <artifactId>eclipselink-staticweave-maven-plugin</artifactId> 
       <groupId>au.com.alderaan</groupId> 
       <version>1.0.4</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>weave</goal> 
         </goals> 
         <phase>process-classes</phase> 
         <configuration> 
          <logLevel>ALL</logLevel> 
          <includeProjectClasspath>true</includeProjectClasspath> 
         </configuration> 
        </execution> 
       </executions> 
       <dependencies> 
        <dependency> 
         <groupId>org.eclipse.persistence</groupId> 
         <artifactId>eclipselink</artifactId> 
         <version>${eclipslink-version}</version> 
        </dependency> 
       </dependencies> 
      </plugin> 

в затмении, если я бег чистой установки, а затем опубликовать и запустить проект, ткачество работать отлично. но если я очищу установку, а затем автоматически очистку с помощью eclipse (проект Maven-> update), затмение очистит .classes, созданные с помощью нашего плагина maven, и создайте другие, не оптимизированные для переплетения.

Смежные вопросы