spring集成openJAP的问题

问题描述

最近在学习openJPA,做的小demo老是报错,请教一下,代码如下;persistence.xml<?xmlversion="1.0"encoding="UTF-8"?><persistencexmlns="http://java.sun.com/xml/ns/persistence"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"version="1.0"><persistence-unitname="demo"transaction-type="RESOURCE_LOCAL"><provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider><properties><propertyname="openjpa.ConnectionURL"value="jdbc:mysql://localhost:3306/openjpa"/><propertyname="openjpa.ConnectionDriverName"value="com.mysql.jdbc.Driver"/><propertyname="openjpa.ConnectionUserName"value="root"/><propertyname="openjpa.ConnectionPassword"value="root"/><propertyname="openjpa.RuntimeUnenhancedClasses"value="supported"/></properties></persistence-unit></persistence>

web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!--加载Spring配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!--Spring容器监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--配置SpringMVC模块--><servlet><servlet-name>sjdemo</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>sjdemo</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

sjdemo-servlet.xml<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><!--启用springAnnotation--><context:annotation-config/><!--扫描指定的包,以完成自动注入--><context:component-scanbase-package="com.jzkangta.sjd"></context:component-scan><!--启动springMVC注解--><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/><!--给模型视图添加前后缀--><beanid="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property><propertyname="prefix"><value>/WEB-INF/pages/</value></property><propertyname="suffix"><value>.jsp</value></property></bean><!--开始整合JPA--><beanid="entityManagerFactory"class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"><propertyname="persistenceUnitName"value="demo"/></bean><!--JPA事务管理器--><beanid="transactionManager"class="org.springframework.orm.jpa.JpaTransactionManager"><propertyname="entityManagerFactory"ref="entityManagerFactory"/></bean><tx:annotation-driventransaction-manager="transactionManager"/></beans>

Person类packagecom.jzkangta.sjd.entity;importjava.io.Serializable;importjavax.persistence.*;@Entity@Table(name="person",catalog="openjpa")publicclassPersonimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.TABLE)privateintid;@Column(name="personName",unique=false,nullable=false,length=50)privateStringname;@Column(name="password",unique=false,nullable=false,length=50)privateStringpassword;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}

packagecom.jzkangta.sjd.dao.impl;importjava.util.List;importjavax.persistence.EntityManager;importjavax.persistence.PersistenceContext;importjavax.persistence.Query;importorg.springframework.stereotype.Component;importorg.springframework.transaction.annotation.Propagation;importorg.springframework.transaction.annotation.Transactional;importcom.jzkangta.sjd.dao.PersonDAO;importcom.jzkangta.sjd.entity.Person;@Component//告诉spring这个类不需要配置@Transactional//告诉spring这个类是需要事务管理的publicclassPersonDaoImplimplementsPersonDAO{@PersistenceContext//通过注解来获得emEntityManagerem;publicbooleancheckLogin(Stringname,Stringpassword){booleanflag=false;Queryquery=em.createQuery("selectofromPersonowhereo.personName=?1ando.password=?2");query.setParameter(1,name);query.setParameter(2,password);List<Person>list=query.getResultList();if(list.size()>0){flag=true;}returnflag;}}

调用checkLogin报如下错:严重:Servlet.service()forservletsjdemothrewexception<openjpa-1.2.1-r752877:753278nonfatalusererror>org.apache.openjpa.persistence.ArgumentException:Anerroroccurredwhileparsingthequeryfilter"selectofromPersono".Errormessage:Thename"Person"isnotarecognizedentityoridentifier.Knownentitynames:[]atorg.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:180)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:150)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:225)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:195)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:188)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$600(JPQLExpressionBuilder.java:69)atorg.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1756)atorg.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:56)atorg.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:153)atorg.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:658)

不知道是何原因。。。

解决方案

解决方案二:
该回复于2010-04-25 08:42:34被版主删除
解决方案三:
Person对象是不是需要带参数的构造函数...........

时间: 2025-01-18 23:20:48

spring集成openJAP的问题的相关文章

shiro和spring集成时session管理器超时时间问题

问题描述 shiro和spring集成时session管理器超时时间问题 这是我的配置文件,我配置了并发人数控制和动态权限过滤,然后session超时时间这里也是配置了的,然后并没有什么鸟用,在登录以后获取超时时间也是正常的,但还是1分钟就过期了. <?xml version="1.0" encoding="UTF-8"?> xmlns:util="http://www.springframework.org/schema/util"

一个简单的hibernate与spring集成

下面介绍一下hibernate与spring的集成,这两个框架的集成关键在于 applicationContext.xml文件的配置,其实很简单的,但需要注意的是,导入包 时一定选择导入到webroot/web-inf/lib目录中,而且hibernate一般要在spring 之前导入,因为集成时要用到sessionFactory类, 一.初始化工作:新建一个项目,如(ssh),在此项目中导入对hibernate的支持 ,新建一个表sstest表,有字段id,username,password,

Spring集成JSF的最简单方式

Spring集成JSF的最简单方式是使用DelegatingVariableResolver类.在faces-config.xml中配置,示例如下: <application> <variable-resolver>org.springframework.web.jsf. DelegatingVariableResolver</variable-resolver> <locale-config> <default-locale>zh_CN<

Spring集成RMI实现客户访问服务器,如何实现冗余服务器操作?

问题描述 Spring集成RMI实现客户访问服务器,如何实现冗余服务器操作?就是我的服务器设定为两个,一个是主,一个是备,当主服务器出现问题,客户机能通过RMI自动连接备服务器.请问谁知道如何配置啊?我的RMI是用Spring内带的RMI接口实现的.谢谢!另外,JMS服务如何实现上面的冗余操作呢? 解决方案 解决方案二:没有人知道答案吗解决方案三:没有人知道答案吗

spring集成velocity,项目启动加载不到vm页面是为什么?

问题描述 spring集成velocity,项目启动加载不到vm页面是为什么? 这是在spring_mvc中的配置: <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views"></property> </bean> <

spring 集成quazt 后如何实现等spring容器加载完成之后自动执行一次任务?

问题描述 我的项目中使用了spring集成quazt来实现任务调度任务的功能,现在有这样一个需求,我需要通过后台任务每隔半小时统计一次业务数据,然后放到缓存中,前台页面通过实时刷新页面来从缓存中获取统计的数据,可能,当我们系统刚上线的时候调度任务还没有执行,要等到指定的时间点才执行,我现要想让系统等到spring容器加载完成后就自动执行一次,请问有什么办法吗?<bean id="refreshOldAccountTrigger" class="org.springfra

struts2和spring集成问题

问题描述 在公司项目开发中遇见spring 和struts2 集成问题spring context配置文件代码:<!-- 客户信息 --><bean id="CustomerAction"class="com.kuquo.app.customer.action.CustomerAction"autowire="byName"></bean><!-- 商品类别 --><bean id="

jax ws-jax-ws 与 spring 集成

问题描述 jax-ws 与 spring 集成 我在上网上找了好多案例什么的,但是基本上就是不全,要么工程就运行不了.求各位大神的简单案例客服端与服务端,小弟再次谢谢了.95414928@qq.com

MyBatis5中Spring集成MyBatis事物管理_java

单独使用MyBatis对事物进行管理 前面MyBatis的文章有写过相关内容,这里继续写一个最简单的Demo,算是复习一下之前MyBatis的内容吧,先是建表,建立一个简单的Student表: create table student ( student_id int auto_increment, student_name varchar(20) not null, primary key(student_id) ) 建立实体类Student.java: public class Studen