2013-08-01 77 views
1

如何在Play MVC中獲得JPA工作。我嘗試了很多變體。但都是不成功的。播放JPA查詢示例

public class Application extends Controller { 

    public static void book() { 
     EntityManager em = JPA.em(); 
     List<Book> bookList = em.createNativeQuery("select * from book").getResultList(); 

     render(bookList); 
    } 


    public static void index() { 
     render(); 
    } 
} 

我有錯誤是這樣的:

發生一個JPA錯誤(JPA上下文未初始化當一個或多個類與@ javax.persistence.Entity註解JPA實體管理器自動啓動。在應用程序中找到):

第二個變體犯規的工作:

@NamedQuery(name = 「findFoo」,查詢=「從富選擇F F其中f。 state in:stateInList「)

final Query query = this.entityManager.createNamedQuery(」findFoo「);

如何使用NamedQuery? NamedQuery放在哪裏?

+0

你有註釋書類的實體上面? – EProgrammerNotFound

回答

0

您的命名查詢是正確的,你可以把它寫

@Entity 
@Table(name = "Foo") 
@NamedQuery(
{ 
    @NamedQuery(name = "findFoo", query = "select f from Foo f where f.state in :stateInList") 
)} 
public class Foo 
{ 
.... 

} 
+0

發生JPA錯誤(無法構建EntityManagerFactory):實體映射中的重複列:models.Book列:id(應該使用insert =「false」update =「false」映射) – AndreyKirsanovPenza

+0

use insertable = false,updateable = false在它已經被映射到其他實體的庫侖編號中 - 來解決這個錯誤 – muthukumar