问题描述
这是test代码packagecom.qhtt.b2p.JUnit.system;importjavax.persistence.EntityManager;importjavax.persistence.EntityManagerFactory;importjavax.persistence.EntityTransaction;importjavax.persistence.Persistence;importcom.qhtt.b2p.domain.system.TestHibernate;publicclassTestDome{publicstaticvoidmain(String[]args){EntityManagerFactoryemf=Persistence.createEntityManagerFactory("ServicePlatform");EntityManagerem=emf.createEntityManager();EntityTransactiontx=em.getTransaction();tx.begin();TestHibernatedata=newTestHibernate();data.setEmail("123@163.com");data.setId(1);data.setMobile("123456789");data.setPassword("1234");data.setState("0");data.setType("Y");data.setUsername("test");try{em.persist(data);tx.commit();em.close();emf.close();}catch(Exceptione){tx.rollback();e.printStackTrace();}finally{em.close();}}}persistence.xml<?xmlversion="1.0"encoding="UTF-8"?><persistenceversion="2.1"xmlns="http://xmlns.jcp.org/xml/ns/persistence"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistencehttp://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"><persistence-unitname="Serviceform"transaction-type="RESOURCE_LOCAL"><provider>org.hibernate.ejb.HibernatePersistence</provider><class>jpa.com.vo.TestHibernate</class><properties><propertyname="hibernate.hbm2ddl.auto"value="update"/><propertyname="hibernate.connection.driver_class"value="com.mysql.jdbc.Driver"/><propertyname="hibernate.connection.url"value="jdbc:mysql://localhost:3306/qhttb2p"/><propertyname="hibernate.connection.username"value="root"/><propertyname="hibernate.connection.password"value="root"/><propertyname="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect"/><propertyname="hibernate.show_sql"value="true"/><propertyname="hibernate.format_sql"value="true"/></properties></persistence-unit></persistence>VO对象packagejpa.com.vo;importjava.io.Serializable;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Table;@Entity@Table(name="b_user")publicclassTestHibernateimplementsComparable<TestHibernate>,Serializable{/****/privatestaticfinallongserialVersionUID=-9218519771354940896L;@OverridepublicintcompareTo(TestHibernateo){return0;}privateStringtype;@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id",nullable=false)privateIntegerid;privateStringemail;privateStringmobile;privateStringpassword;privateStringstate;privateStringusername;publicStringgetType(){returntype;}publicvoidsetType(Stringtype){this.type=type;}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}publicStringgetMobile(){returnmobile;}publicvoidsetMobile(Stringmobile){this.mobile=mobile;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}publicStringgetState(){returnstate;}publicvoidsetState(Stringstate){this.state=state;}publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}}在运行时总是报log4j:WARNNoappenderscouldbefoundforlogger(org.hibernate.cfg.annotations.Version).log4j:WARNPleaseinitializethelog4jsystemproperly.Exceptioninthread"main"javax.persistence.PersistenceException:[PersistenceUnit:Serviceform]UnabletoconfigureEntityManagerFactoryatorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:265)atorg.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)atjavax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)atjavax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)atjpa.com.test.Test.main(Test.java:14)Causedby:org.hibernate.AnnotationException:Noidentifierspecifiedforentity:jpa.com.vo.TestHibernateatorg.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:672)atorg.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)atorg.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)atorg.hibernate.cfg.Configuration.buildMappings(Configuration.java:1115)atorg.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226)atorg.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:173)atorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)atorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191)atorg.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253)...4more求大神帮忙看一下是什么问题
解决方案
解决方案二:
jpa.com.vo.TestHibernate没定义主键吧?
解决方案三:
@GeneratedValue(strategy=GenerationType.AUTO)privateIntegerid;后面修改了,也还是一样的错误
解决方案四:
@javax.persistence.Id//注意这个@GeneratedValue(strategy=GenerationType.AUTO)privateIntegerid;