我是否需要在ORM.xml文件中放置命名查询

时间:2012-04-09 13:33:54

标签: orm openjpa entity-bean

我最近F-ed了我的JPA entites,我正在拼命想要恢复这个功能。在我的实体中添加一些默认查询后,我无法在会话bean中调用它们......我得到了这个异常

There is no query with the name "" defined for any of the known persistent classes:

虽然所述命名查询确实存在,但它只是对持久性类(或实体bean)的注释。我是否需要将其添加到ORM.xml文件中?我似乎记得您可以对ORM.xml文件进行注释,或者您可以直接注释实体bean。我在这里错过了一步吗?

感谢。

更新: 实际命名查询:

import javax.persistence.Table;
import javax.persistence.NamedQuery;
import javax.persistence.NamedQueries;

@Entity
@Table(name="EMAIL_DOMAIN_TRUST")
@NamedQueries({
@NamedQuery(name="getEmailDomainTrust", query = "SELECT e FROM EmailDomainTrust e"),
    ...
})

这是我在无状态会话bean中调用它的地方

public List<EmailDomainTrust> getEmailDomains() {       

    List listOfEmailDomains = null;
    //try
    //{
        System.out.println("Testing 1..2...3...!");
        listOfEmailDomains = emf.createNamedQuery("getEmailDomainTrust").getResultList(); 
        System.out.println(listOfEmailDomains.size());
    //}
    //catch(Exception e)
    //{
        //System.out.println("Sugar Cookies!  This thing doesn't work");        
    //}
    // while(it)
   return listOfEmailDomains;    

}

不知道为什么它似乎无法找到它?我在Websphere集成开发人员btw工作。也许某些东西没有正确更新?

1 个答案:

答案 0 :(得分:-1)

谢谢你们。我是个白痴,没有建立我的项目。