2012-04-21 24 views
5

何が問題なのですか?名前付きHibernateクエリで "Named Query Not Unknown"と表示されますか?

@Entity 
@NamedQueries({ 
    @NamedQuery(name = User.ALL, 
       query = "SELECT u FROM User u") 
}) 

public class User { 
    public static final String ALL = "User.all"; 
} 

public class Service { 
    find... with ... User.ALL 
} 

スタックトレース:

Caused by: org.hibernate.MappingException: Named query not known: User.all 
    at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:93) 
    at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1407) 
    at $Session_a5ad46cfa25.getNamedQuery(Unknown Source) 
    at $Session_a5ad46cf913.getNamedQuery(Unknown Source) 
    at de.medicshare.dal.HibernateCrudServiceDAO.findUniqueWithNamedQuery(HibernateCrudServiceDAO.java:83) 
    at $CrudServiceDAO_a5ad46cfa19.findUniqueWithNamedQuery(Unknown Source) 
    at $CrudServiceDAO_a5ad46cfa1b.findUniqueWithNamedQuery(Unknown Source) 
    at $CrudServiceDAO_a5ad46cf931.findUniqueWithNamedQuery(Unknown Source) 
    at de.medicshare.pages.Signup.proceedSignup(Signup.java:82) 
    at de.medicshare.pages.Signup.dispatchComponentEvent(Signup.java) 
    at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:923) 
    at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1106) 
    ... 90 more 
+0

? – Nurlan

+0

Eclipseは定数の使用のみを確認できます。ですから、 '' User.all ''でクエリを作成すると、チェックされない文字列になります。私が間違って綴るなら、 'User.ALL'を使ってコンパイルする前にチェックされます。 – membersound

+1

hibernate.cfg.xml/persistence.xmlを投稿できますか? –

答えて

2

ない、これはあなたの問題ではなく、この記事hereをチェックアウトするかどうか確認してください。

問題は、使用した:

org.hibernate.annotations.Entity 

の代わりに:あなただけ= "User.all" という名前を付け使用しなかった理由を

javax.persistence.Entity 
+0

これは注目すべき点ですが、残念ながら、maceの場合は適切なインポートを使用しました。 – membersound

+0

ああ、試してみる価値がある。 hibernate.cfg.xmlのクラスを宣言しましたか(最後の拡張子は異なる場合があります)? –

関連する問題