2013-03-23 5 views
0

Google Endpoints가 Cloud SQL에 대한 Hibernate와 작동합니까?
일부 코드에 짧은 코드 예를 게시 할 수 있습니까?최대 절전 모드를 사용하는 Google Endpoint의 예 SQL

@Entity 
@Table(name = "LANGUAGES") 
public class Language { 

private String languageIsoCode; 
private String languageName; 

public Language() {} 

@Id 
@Column(name = "LANGUAGE_ISO_CODE", unique = true, nullable = false, length = 8) 
public String getLanguageIsoCode() { 
    return this.languageIsoCode; 
} 

public void setLanguageIsoCode(String languageIsoCode) { 
    this.languageIsoCode = languageIsoCode; 
} 

@Column(name = "LANGUAGE_NAME", nullable = false, length = 160) 
public String getLanguageName() { 
    return this.languageName; 
} 

public void setLanguageName(String languageName) { 
    this.languageName = languageName; 
} 
} 

LanguageEndpoint 클래스 :

@Api 
public class LanguageEndpoint { 

@ApiMethod 
public String getLanguage(){ 
    EntityManager mgr = getEntityManager(); 
    Query q = mgr.createQuery("from Language"); 
    Language l = (Language) q.getResultList().get(0); 
    return l.getLanguageName(); 
} 

private static EntityManager getEntityManager() { 
    return EMF.hibernateGet().createEntityManager(); 
} 

} 

및 EMF 클래스 :

public final class EMF { 
private static final EntityManagerFactory emfInstance = Persistence 
     .createEntityManagerFactory("transactions-optional"); 

private static final EntityManagerFactory emfHibernateInstance = Persistence 
     .createEntityManagerFactory("com.google.cloudsql.jpa"); 

private EMF() { 
} 

public static EntityManagerFactory get() { 
    return emfInstance; 
} 

public static EntityManagerFactory hibernateGet() { 
    return emfHibernateInstance; 
} 
} 
클라이언트 라이브러리

언어 클래스를 생성하는 동안
나는 그렇게하려고 노력 및 일반 오류 발생

+0

시도한 코드를 게시하십시오. Google에서 도와 드리겠습니다. Cloud Endpoints는 App Engine에서 실행되므로 App Engine의 다른 곳에서 할 수있는 Cloud Endpoints 메소드에서 모든 작업을 수행 할 수 있습니다. – bossylobster

+0

이 코드를 게시했습니다. 당신이 그것을 보면 고맙겠습니다. 고맙습니다 –

답변

2

나는 그것을 이해했다.
우선, 이클립스 플러그인은 엔드 포인트 라이브러리를 생성하려고 할 때 오류가 발생했다고 기록하고 sdk (endpoints.cmd)에서 항상 좋은 이전 스크립트를 호출하고 전체 로그를 가져온다.

문제는 프로젝트에서 Datanucleus을 제거에도 불구하고, 그것은 보인다되었다 "javax의/지속성/EntityManager의 java.lang.NoClassDefFoundError가"주 "스레드에서 예외" :

내가 로그에서 본 것입니다 항아리와 Hibernate의 일부 기능이 충돌합니다. 표준 JPA EMF를 사용하는 대신 HibernateUtil과 SessionFactory를 사용했습니다.

또 다른 문제는 분명히 String을 API의 반환 값으로 사용할 수 없다는 것입니다.