안녕하세요. 엔티티 클래스에 @Entity 주석이 달려있어 Google 애플리케이션 엔진에서 JPA와 함께 유지 될 수 있습니다.JPA on google app engine 유형 ("XXX")은 엔티티의 형식이 아니지만이 작업에 필요합니다.
[INFO] --- maven-datanucleus-plugin:3.1.1:enhance (default) @ grabby-backend ---
[INFO] DataNucleus Enhancer (version 3.1.1) : Enhancement of classes
DataNucleus Enhancer completed with success for 1 classes. Timings : input=181 ms, enhance=60 ms, total=241 ms. Consult the log for full details
[ERROR] --------------------
[ERROR] Standard error from the DataNucleus tool + org.datanucleus.enhancer.DataNucleusEnhancer :
[ERROR] --------------------
[ERROR] Nov 14, 2013 5:00:01 PM org.datanucleus.enhancer.DataNucleusEnhancer <init>
INFO: DataNucleus Enhancer for API "JPA"
Nov 14, 2013 5:00:02 PM org.datanucleus.enhancer.DataNucleusEnhancer main
INFO: DataNucleus Enhancer (version 3.1.1) : Enhancement of classes
Nov 14, 2013 5:00:02 PM org.datanucleus.metadata.MetaDataManager loadFiles
WARNING: Metadata file -enhancerName not found in CLASSPATH
Nov 14, 2013 5:00:02 PM org.datanucleus.metadata.MetaDataManager loadFiles
WARNING: Metadata file ASM not found in CLASSPATH
Nov 14, 2013 5:00:02 PM org.datanucleus.enhancer.AbstractClassEnhancer save
INFO: Writing class file "/Development/datagrabber-backend/grabby- backend/target/classes/com/appspot/datagrabby/model/entities/DataUrls.class" with enhanced definition
Nov 14, 2013 5:00:02 PM org.datanucleus.enhancer.DataNucleusEnhancer addMessage
INFO: DataNucleus Enhancer completed with success for 1 classes. Timings : input=181 ms, enhance=60 ms, total=241 ms. Consult the log for full details
와 : 내 프로젝트를 빌드 및 컴파일 단계에서 내 기록에 내가 다음을 참조, 클래스를 향상시킬 수 받는다는 사용하고
@Entity
public class DataUrls {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
private String postalCode;
private List<String> urls;
public Key getKey() {
return key;
}
public void setKey(Key key) {
this.key = key;
}
public String getPostalCode() {
return postalCode;
}
public void setPostalCode(String postalCode) {
this.postalCode = postalCode;
}
public List<String> getUrls() {
return urls;
}
public void setUrls(List<String> urls) {
this.urls = urls;
}
}
:
내 클래스는 다음과 같습니다 설정은 다음과 같습니다 :
<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>maven-datanucleus-plugin</artifactId>
<version>${datanucleus.jpa.version}</version>
<configuration>
<api>JPA</api>
<metadataIncludes>com/appspot/blabla/model/entities/*.class</metadataIncludes>
<verbose>true</verbose>
<enhancerName>ASM</enhancerName>
</configuration>
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>${datanucleus.jpa.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
지속성 코드 :
public void persistDataURLs(DataUrls dataUrls){
EntityManager em = EMF.getFactory().createEntityManager();
em.persist(dataUrls);
em.close();
}
그러나 나는 다음과 같은 메시지 얻을 데이터베이스에 기록 할 때 :
Type ("XXX") is not that of an entity but needs to be for this operation
나는 응용 프로그램이 증강 플러그인의 로깅 클래스가 있음을 알려 그러나 때문에 이런 말을하는 이유를 이해 향상된 이유가 궁금합니다.
여기에 지속성 코드가 관련성이 있습니까? 왜냐하면 당신은 어떤 예외 (stack trace를 가지고있다)가 발생한다고 말한다. – DataNucleus
maven을 통해 dev 서버를 실행하고 있기 때문에 stacktrace를 얻지 못했지만 persistence 코드를 추가했습니다. 내가 디버그에 들어가서 객체를 검사 할 때 jdoStateManager와 jdoDetachedState와 같은 JDO 물건이 많이 보인다. –
원하는 경우 예외를 catch하여 스택 추적을 얻습니다. 또한 정보가 많은 로그가 있습니다 – DataNucleus