请教 关于JPA 测试生成数据库表 的纠结错误 大侠指教

问题描述

错误信息javax.persistence.PersistenceException:[PersistenceUnit:jpa]UnabletoconfigureEntityManagerFactoryatorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:374)atorg.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)atjavax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)atjavax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)atcom.yl.junitTest.JunitTest.save(JunitTest.java:18)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:585)atorg.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)atorg.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)atorg.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)atorg.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)atorg.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)atorg.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)atorg.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)atorg.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)atorg.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)atorg.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)atorg.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)atorg.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)Causedby:org.hibernate.AnnotationException:Useof@OneToManyor@ManyToManytargetinganunmappedclass:com.yl.jpa.Orders.items[com.yl.jpa.OrderItems]atorg.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1168)atorg.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:693)atorg.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:628)atorg.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:65)atorg.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1686)atorg.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1393)atorg.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345)atorg.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1477)atorg.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193)atorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1096)atorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:278)atorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:362)...24more实体类ORDERSpackagecom.yl.jpa;importjava.util.HashSet;importjava.util.Set;importjavax.persistence.CascadeType;importjavax.persistence.Entity;importjavax.persistence.FetchType;importjavax.persistence.Id;importjavax.persistence.OneToMany;@EntitypublicclassOrders{privateStringorderId;privatefloatamount=0f;privateSet<OrderItems>items=newHashSet<OrderItems>();@IdpublicStringgetOrderId(){returnorderId;}publicvoidsetOrderId(StringorderId){this.orderId=orderId;}publicfloatgetAmount(){returnamount;}publicvoidsetAmount(floatamount){this.amount=amount;}@OneToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE,CascadeType.REMOVE,CascadeType.PERSIST},fetch=FetchType.LAZY,mappedBy="order")publicSet<OrderItems>getItems(){returnitems;}publicvoidsetItems(Set<OrderItems>items){this.items=items;}}实体类2ORDRSITEMSpackagecom.yl.jpa;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.FetchType;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.ManyToOne;publicclassOrderItems{privateIntegerid;privateStringprodouctName;privatefloatsellPrice=0f;privateOrdersorder;@Id@GeneratedValuepublicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}@Column(nullable=false,length=40)publicStringgetProdouctName(){returnprodouctName;}publicvoidsetProdouctName(StringprodouctName){this.prodouctName=prodouctName;}publicfloatgetSellPrice(){returnsellPrice;}publicvoidsetSellPrice(floatsellPrice){this.sellPrice=sellPrice;}@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},fetch=FetchType.EAGER,optional=false)@JoinColumn(name="order_id")publicOrdersgetOrder(){returnorder;}publicvoidsetOrder(Ordersorder){this.order=order;}}persistence.xml配置文件<?xmlversion="1.0"?><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="jpa"transaction-type="RESOURCE_LOCAL"><provider>org.hibernate.ejb.HibernatePersistence</provider><properties><propertyname="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect"/><propertyname="hibernate.connection.driver_class"value="org.gjt.mm.mysql.Driver"/><propertyname="hibernate.connection.username"value="root"/><propertyname="hibernate.connection.password"value="sa"/><propertyname="hibernate.connection.url"value="jdbc:mysql://localhost:3306/jpa?useUnicode=true&amp;characterEncoding=UTF-8"/><propertyname="hibernate.max_fetch_depth"value="3"/><propertyname="hibernate.hbm2ddl.auto"value="update"/><propertyname="hibernate.jdbc.fetch_size"value="18"/><propertyname="hibernate.jdbc.batch_size"value="10"/><propertyname="hibernate.show_sql"value="true"/><propertyname="hibernate.format_sql"value="false"/></properties></persistence-unit></persistence>测试生成表importjavax.persistence.EntityManagerFactory;importjavax.persistence.Persistence;importorg.junit.BeforeClass;importorg.junit.Test;publicclassJunitTest{@BeforeClasspublicstaticvoidsetUpBeforeClass()throwsException{}//测试@Testpublicvoidsave(){EntityManagerFactoryemf=Persistence.createEntityManagerFactory("jpa");emf.close();}}各位大侠小弟菜鸟刚接触JPA请大虾们多多指点小弟不胜感激谢谢了

时间: 2024-09-23 16:08:31

请教 关于JPA 测试生成数据库表 的纠结错误 大侠指教的相关文章

数据库添加数据-请教java后台向数据表添加数据总是失败问题

问题描述 请教java后台向数据表添加数据总是失败问题 其中customerid总是取到0, 在控制台输出的id也是有值的,怎么一添加到customerid 就变成0了? 解决方案 看你的代码是把id赋值给了变量lxr,而你最后一行代码crumCustomerService.add(crumCustomerlxr). 你最终要添加到数据库的记录是那个呢?如果是crumCustomerlxr的话,没看到赋值的地方啊. 建议你还是理理代码思路吧,我看你定义lxr是在循环外面,而循环里面每次都重新对l

[求助]关于练习相关的数据库表设计、类设计、程序设计问题请教,忘前辈们进

问题描述 本人初学C#2个月了,网上看到有关于各种管理系统的软件介绍博客,想自己写个小练习练练手,但是因为考虑到的东西太多,起步很难,想在此请教前辈们,因为没什么分,还请见谅做1个简单的项目设备信息管理程序,主界面包含:WinForm界面,左边TreeView以项目时间为父节点.项目名称为子节点显示项目名称,右边GridView显示具体项目的交付产品信息主要功能包含:增-弹出信息录入界面框,确认添加后更新数据库及界面删-选中某个项目或某个产品,确认删除后,更新数据库及界面改-选中某个项目或某个产

Myeclipse中,利用JPA普通类建立数据库表,改如何操作

问题描述 Myeclipse中,利用JPA普通类建立数据库表,改如何操作?急需... 解决方案 解决方案二:改什么操作,请问你创建表是用注解方式还是xml格式?解决方案三:该如何操作,就是单个类转成JPA实体,比如我新建一个user类,设置属性username,password,并且设置了getset方法,然后如何利用myeclipse工具让它转成JPA实体类?解决方案四:注解完后在xml继续配置,问题是myeclipse该如何操作...

请教-请大师帮助解决一下“从数据库表中取去判断”

问题描述 请大师帮助解决一下"从数据库表中取去判断" private void gridView1_RowStyle(object sender, RowStyleEventArgs e) { //读取使用年限值 SqlDataReader sqlread = database.getread("select Pjmc,Synx from tb_Synx"); if (sqlread.Read()) { lab_Synx.Text = sqlread["S

Activiti数据库表结构(表详细版)

Activiti数据表结构 1  Activiti数据库表结构 1.1      数据库表名说明     Activiti工作流总共包含23张数据表,所有的表名默认以"ACT_"开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : "GE"代表"General"(通用),用在各种情况下: u  ACT_HI_* : "HI"代表"History

小弟继续请教那个DATATABLE向数据库总提交问题,麻烦各位朋友帮助,谢谢!!

问题描述 小弟继续请教那个DATATABLE向数据库总提交问题系统(VS2003,语言是VB.NET,数据库是SQL2005EXPRESS)最麻烦的是DATAROW中保存的是"○"和"×",要翻译成"1"和"0"保存入数据库,麻烦死了小弟昨天又通宵了,苦啊! 解决方案 解决方案二:http://topic.csdn.net/u/20080414/01/17537ee5-c53c-432b-b6da-d5f32e05c536.h

javaweb开发中如何实现将数据库表中的某一状态自动置为Y或N

问题描述 javaweb开发中如何实现将数据库表中的某一状态自动置为Y或N 现在我做的毕业设计有这样一个需求:学生缴学费有一个缴费时间和到期时间,到期时间就是有效期.比如说我交学费,有效期是一年,交了学费后,交费状态就是Y,怎样实现一年有效期结束之后自动将学生表中学生的交费状态置为N?javaweb开发用的框架是SSM和easyui. 诚心请教各位大牛们!感激不尽~~~ 解决方案 有三个 字段 缴费时间.到期时间.缴费状态,默认情况下 缴费状态就是N(未缴费)缴费后状态在程序中修改成Y(已缴费)

CentOS下无法正常获取MySQL数据库表数据的问题

之前,由于客户要求在centOS下安装系统应用,因此有机会接触了一下CentOS,顺便也了解了下CentOS的常规操作,还有在CentOS下的MySQL相关操作. 目前技术框架使用JSF(richfaces.facelets)+Spring+JPA(OpenJPA),不使用数据库依赖的触发器或存储过程,所有业务逻辑在web服务器上执行,因此数据库基本不用考虑移植问题.但是本来在windows下运行正常的系统,在linux下却没法获取一些表的内容.由于数据库的初始化,最初只是体现在几个需要手工维护

datagridview-下面通过dataset更新数据库,代码哪里有错误,各位大哥,我都纠结一天了(winform)

问题描述 下面通过dataset更新数据库,代码哪里有错误,各位大哥,我都纠结一天了(winform) //更新数据源的方法 private int UpdateByDataSet(DataSet ds, string strTblName, string strconn) { // dgvHead.Columns["pid"].Visible = true; //dgvHead.Columns["fNo"].Visible = true; //dgvHead.Co