2013-03-20 4 views
0

I가 내가이 엔티티 생성 JPA찾을 수 없습니다 개체

CREATE TABLE translations (
id SERIAL NOT NULL, 
KEY VARCHAR(255), 
LANGUAGE VARCHAR(255), 
TRANSLATION VARCHAR(255) 
) 

사용하려는이 DB 테이블 :

@Entity 
@Table(name = "translations") 
public class TranslationTestEntitie extends AbstractEntityWithId { 

    private static final long serialVersionUID = 2029240552230401080L; 

    @Column(name = "id", insertable=false, updatable=false) 
    private long id; 
    @Column(name = "key", insertable=false, updatable=false) 
    private String key; 
    @Column(name = "language", insertable=false, updatable=false) 

    private String language; 
    @Column(name = "translation", insertable=false, updatable=false) 
    private String translation; 

    public TranslationTestEntitie() { 
    } 

    // Getters and setters 
    public Long getId() { 
     return id; 
    } 

    public void setId(long id) { 
     this.id = id; 
    } 

    public String getKey() { 
     return key; 
    } 

    public void setKey(String key) { 
     this.key = key; 
    } 

    public String getLanguage() { 
     return language; 
    } 

    public void setLanguage(String language) { 
     this.language = language; 
    } 

    public String getTranslation() { 
     return translation; 
    } 

    public void setTranslation(String translation) { 
     this.translation = translation; 
    } 

} 

내가이 쿼리를 SELECT c FROM Translations c WHERE c.Id = 70

I를 만들려고 이 메시지를 받으십시오 The abstract schema type 'Translations' is unknown.

이 자격은 t에 따라 정확합니까? o DB 테이블.

public TData td; 

    public class TData { 

     private long id; 
     private String key; 
     private String language; 
     private String translation; 

     public TData() { 
     }; 

     public TData(long id, String key, String language, String translation) { 
      // super(); 
      this.id = id; 
      this.key = key; 
      this.language = language; 
      this.translation = translation; 
     } 

     public long getId() { 
      return id; 
     } 

     public void setId(long id) { 
      this.id = id; 
     } 

     public String getKey() { 
      return key; 
     } 

     public void setKey(String key) { 
      this.key = key; 
     } 

     public String getLanguage() { 
      return language; 
     } 

     public void setLanguage(String language) { 
      this.language = language; 
     } 

     public String getTranslation() { 
      return translation; 
     } 

     public void setTranslation(String translation) { 
      this.translation = translation; 
     } 

    } 

    public TData getDataObj() { 
     return td; 
    } 

    @PostConstruct 
    public void loadData() { 

     td = new TData(); 

     String query = "SELECT c FROM Translations c WHERE c.id = 70"; 
     td = (TData) dao.jpqlQuerySingle(query);//(query);//jpqlQuery(query); 

    } 

하지만 여전히 빈 개체를 얻을 :이

P.S 내가 데이터를 가져 오기 위해 사용하는 코드입니다.

+0

이 엔티티를 수동으로 생성 했습니까? 왜 netbeans/이클립스 데이터베이스 테이블 구조를 사용하여 생성하는 데 사용하지? – pepuch

+1

어떻게 그 쿼리를 만들려고합니까? 엔티티 유형을 등록하는 방법은 무엇입니까? –

+0

db를 요청하는 코드를 게시 할 수 있습니까? – benzonico

답변

1

테이블 이름이 Translations이 아니고 translations이 아니기 때문일 수 있습니다.

SELECT c FROM translations c WHERE c.id = 70 

소문자 id.

+0

하지만 JPQL이므로 JPA 스펙에 따라 테이블 이름이 아닌 엔티티 이름이어야합니다. – DataNucleus

2

translations 데이터베이스 테이블에 매핑 된 엔터티의 이름은 TranslationTestEntitie입니다.

from TranslationTestEntitie c은 사용자의 요구에 맞아야합니다.

관련 문제