Java 实体管理器/持久性文件结构
标题不清楚,因为我想不出一个,但是,我有一个EJB项目,正在尝试使用JPA。要创建实体管理器,我将通过注释将其注入Java 实体管理器/持久性文件结构,java,orm,jpa,persistence,ejb-3.0,Java,Orm,Jpa,Persistence,Ejb 3.0,标题不清楚,因为我想不出一个,但是,我有一个EJB项目,正在尝试使用JPA。要创建实体管理器,我将通过注释将其注入 @PersistenceContext(unitName="testConnection") private EntityManager em; 当我运行一个我认为很好的测试查询时 Query userQuery = em.createQuery("SELECT u FROM TestUser u WHERE u.username = 'test' u.password =
@PersistenceContext(unitName="testConnection")
private EntityManager em;
当我运行一个我认为很好的测试查询时
Query userQuery = em.createQuery("SELECT u FROM TestUser u WHERE u.username = 'test' u.password = 'test'");
tu = (TestUser) userQuery.getSingleResult();
我得到一个异常,指出EJB无法创建实体管理器
奇怪的是当我跑的时候
tu = (TestUser) em.find(TestUser.class, id);
它很好用
我的项目结构是
EAR
EJB
EJB Client
JPA
persistance.xml
我想这是主要的问题
严重:java.lang.IllegalStateException:无法检索unitName testConnection的EntityManagerFactory
当前使用依赖项链接各个项目
有什么想法吗
谢谢
Jon我曾经写过一个实体管理器,但目前我无法访问代码,但请查看此页面和底部链接的页面:
我曾经编写过一个实体管理器,但目前无法访问代码,但请查看此页面和底部链接的页面: 我有一个EJB项目,正在尝试使用JPA。要创建实体管理器,我将通过注释将其注入 注释零件本身看起来是正确的 当我运行一个我认为很好的测试查询时
Query userQuery = em.createQuery("SELECT u FROM TestUser u WHERE u.username = 'test' u.password = 'test'");
tu = (TestUser) userQuery.getSingleResult();
我不认为是这样,至少在WHERE子句中缺少AND。但实际上我会这样写:
Query userQuery = em.createQuery("SELECT u FROM TestUser u WHERE u.username = :name AND u.password = :password");
userQuery.setParameter("name", "test");
userQuery.setParameter("password", "test");
tu = (TestUser) userQuery.getSingleResult();
我得到一个异常,指出EJB无法创建实体管理器。奇怪的是当我跑的时候。。。它很好用
考虑到你得到的例外情况,这确实很奇怪
我的项目结构是
我不知道这是否是一个输入错误,但它是persistence.xml,而不是persistence.xml,它应该位于持久性单元根目录的META-INF目录中
有什么想法吗
修复查询,修复persistence.xml包。另外,请提供其内容和完整的堆栈跟踪
我有一个EJB项目,正在尝试使用JPA。要创建实体管理器,我将通过注释将其注入
注释零件本身看起来是正确的
当我运行一个我认为很好的测试查询时
Query userQuery = em.createQuery("SELECT u FROM TestUser u WHERE u.username = 'test' u.password = 'test'");
tu = (TestUser) userQuery.getSingleResult();
我不认为是这样,至少在WHERE子句中缺少AND。但实际上我会这样写:
Query userQuery = em.createQuery("SELECT u FROM TestUser u WHERE u.username = :name AND u.password = :password");
userQuery.setParameter("name", "test");
userQuery.setParameter("password", "test");
tu = (TestUser) userQuery.getSingleResult();
我得到一个异常,指出EJB无法创建实体管理器。奇怪的是当我跑的时候。。。它很好用
考虑到你得到的例外情况,这确实很奇怪
我的项目结构是
我不知道这是否是一个输入错误,但它是persistence.xml,而不是persistence.xml,它应该位于持久性单元根目录的META-INF目录中
有什么想法吗
修复查询,修复persistence.xml包。另外,请提供其内容和完整的堆栈跟踪。ahh非常感谢您,持久性名称是一个输入错误。这是一个糟糕的查询,我不敢相信我自己没有看到它。我对它给出的错误感到惊讶,这是一个错误查询的结果。再次感谢!非常感谢,持久性名称是一个拼写错误。这是一个糟糕的查询,我不敢相信我自己没有看到它。我对它给出的错误感到惊讶,这是一个错误查询的结果。再次感谢