hibernate迁移3.5到4.3.5未知实体错误

hibernate迁移3.5到4.3.5未知实体错误,hibernate,migration,mapping,Hibernate,Migration,Mapping,需要直接从3.5(尤其是hibernate3.jar)迁移到4.3.5。应用程序是使用基本JAXB(@XMLRootElement等)注释的简单POJO。此外,还有简单的hbm.xml和cfg.xml。由一个不显著的持久化类使用到PostgreSQL数据库。操作系统是Fedora20。修复了编译错误,如hibernate.org DTD location 所有表的错误为“未知实体”。需要我说,“看起来应该有用,但不行。”我会很感激你的帮助。非常感谢-mb Hibernate.jar文件增量(在类

需要直接从3.5(尤其是hibernate3.jar)迁移到4.3.5。应用程序是使用基本JAXB(@XMLRootElement等)注释的简单POJO。此外,还有简单的hbm.xml和cfg.xml。由一个不显著的持久化类使用到PostgreSQL数据库。操作系统是Fedora20。修复了编译错误,如hibernate.org DTD location

所有表的错误为“未知实体”。需要我说,“看起来应该有用,但不行。”我会很感激你的帮助。非常感谢-mb

Hibernate.jar文件增量(在类路径中):

以前的:

  • antlr-2.7.6.jar
  • c3p0-0.9.1.jar
  • cglib-2.2.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • hibernate-jpa-2.0-api-1.0.0.Final.jar
  • hibernate-validator-4.0.2.GA.jar
  • hibernate3.jar
  • javassist-3.9.0.GA.jar
  • jta-1.1.jar oscache-2.1.jar
  • proxool-0.8.3.jar
  • slf4j-api-1.5.11.jar
  • slf4j-log4j12-1.5.11.jar
  • swarmcache-1.0RC2.jar
新的:

  • antlr-2.7.7.jar
  • c3p0-0.9.2.1.jar
  • hibernate-c3p0-4.3.5.Final.jar
  • mchange-commons-java-0.2.3.4.jar
  • commons-collections4-4.0.jar
  • hibernate-commons-annotations-4.0.4.Final
  • hibernate-core-4.3.5.Final.jar
  • jandex-1.1.0.Final.jar
  • jboss-logging-3.1.3.GA.jar
  • jboss-logging-annotations-1.2.0.Beta1.jar
  • jboss-transaction-api_1.2_spec-1.0.0.Final.jar
  • hibernate-envers-4.3.5.Final.jar
  • hibernate-entitymanager-4.3.5.Final.jar
  • dom4j-1.6.1.jar
  • hibernate-jpa-2.1-api-1.0.0.Final.jar
  • hibernate/hibernate-validator-5.1.1.Final.jar
  • hibernate-testing-4.3.5.Final.jar
  • jbosscache-core.jar jboss-cache.jar
  • ehcache-core-2.4.3.jar
  • hibernate-ehcache-4.3.5.Final.jar
  • hibernate-infinispan-4.3.5.Final.jar
  • infinispan-commons-6.0.0.Final.jar
  • infinispan-core-6.0.0.Final.jar
  • javassist-3.18.1-GA.jar
  • jta-1.1.jar oscache-2.4.1.jar
配置文件:

<?xml version='1.0' encoding='utf-8'?>
<!--
~ Copyright (c) 2006 - 2014 Make Sence Florida Inc.
-->

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

<session-factory>

<property name="hibernate.ejb.naming_strategy">
org.hibernate.cfg.DefaultComponentSafeNamingStrategy
</property>

<property name="hibernate.current_session_context_class">thread</property>

<mapping resource="com/project/modules/security/types/SecurityPrincipalEntity.hbm.xml"/>

</session-factory>
</hibernate-configuration>

org.hibernate.cfg.DefaultComponentSafeNamingStrategy
线
POJO:

包com.project.modules.security.types;
/*
*版权所有(c)2006-2014 Make Sence Florida Inc。
*/
导入com.project.modules.persist.entity.EntityBase;
导入javax.xml.bind.annotation.XmlAccessType;
导入javax.xml.bind.annotation.XmlAccessorType;
导入javax.xml.bind.annotation.XmlAttribute;
导入javax.xml.bind.annotation.xmlement;
导入javax.xml.bind.annotation.XmlRootElement;
导入javax.xml.bind.annotation.XmlTransient;
导入java.io.DataInputStream;
导入java.io.DataOutputStream;
导入java.io.IOException;
@XmlRootElement(name=“principal”)
@XmlAccessorType(XmlAccessType.FIELD)
公共类SecurityPrincipalEntityBase扩展{
私有静态最终长serialVersionUID=130656661920374675L;
@XmlAttribute(必需=false)
私钥;
@XmlTransient
私人长版;
@XmlElement(必需=true,name=“user\u name”)
私有字符串用户名;
@XmlElement(必需=true,name=“user\u password”)
私有字符串用户密码;
公共安全原则(){
}
公共安全性原则(字符串目标){
this.user_name=目标;
}
公共长getVersion(){
返回版本;
}
公共字符串getUser_name(){
返回用户名;
}
公共字符串getUser_password(){
返回用户密码;
}
公共长getKey(){
返回键;
}
public void writeTo(DataOutputStream out)引发IOException{
}
public void readFrom(DataInputStream-in)
抛出IOException、IllegalacessException、InstanceionException{
}
}
HBM.XML:

<?xml version="1.0"?>
<!--
~ Copyright (c) 2006 - 2014 Make Sence Florida Inc. 
-->

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.project.modules.security.types">

<class name="com.project.modules.security.types.SecurityPrincipalEntity"
table="security_principal">

<id access="field" name="key" type="long">
<generator class="identity"/>
</id>

<version access="field" name="version" type="long"/>

<property access="field" name="user_name" type="string">
<column name="user_name" length="2048"/>
</property>

<property access="field" name="user_password" type="string">
<column name="user_password" length="2048"/>
</property>

</class>

</hibernate-mapping>

持久化类:

package com.project.modules.security.types;

import com.project.modules.foundation.topology.datasource.DataSourceType;
import com.project.modules.persist.Persist;
import com.project.modules.persist.PersistException;
import com.project.modules.persist.entity.EntityPersisterBase;
import org.hibernate.Query;

/* 
* Copyright (c) 2006 - 2014 Make Sence Florida Inc.
*/

public class PrincipalPersister extends EntityPersisterBase<Long, SecurityPrincipalEntity> {

private static final long serialVersionUID = -49958433413782923L;

@Override
public DataSourceType getType() {
return DataSourceType.Discovery;
}

@Override
protected SecurityPrincipalEntity createNewPersistedClass() throws PersistException {
try {
return new SecurityPrincipalEntity();
} catch (Throwable e) {
throw new PersistException(e);
}
}

@Override
protected Query getDeleteAllEntitiesQuery() {
return Persist.session(getType()).createQuery("delete from SecurityPrincipalEntity ");
}

@Override
protected SecurityPrincipalEntity fetchByKeyFromDb(Long key) throws PersistException {
return (SecurityPrincipalEntity) Persist.session(getType())
.get(SecurityPrincipalEntity.class, key);
}


@Override
protected Query getFetchBatchQuery() {
return Persist.session(getType())
.createQuery("select c from SecurityPrincipalEntity c order by c.key");
}

@Override
protected Query getFetchAllQuery() throws PersistException {
return Persist.session(getType()).createQuery("select e from SecurityPrincipalEntity e");
}

@Override
protected Query getCountAllEntitiesQuery() {
return Persist.session(getType())
.createQuery("select count(c) from SecurityPrincipalEntity c");
}

@Override
protected Class<?>[] getTypes() {
return new Class<?>[]{SecurityPrincipalEntity.class};
}

@Override
protected Query deleteEntityByKeyQuery() {
return Persist.session(getType())
.createQuery("delete from SecurityPrincipalEntity r where r.key = ?");
}

@Override
protected String getPersistName() {
return "principal";
}

}

      END SUBMISSION 
    END SUBMISSION 
 END SUBMISSION
包com.project.modules.security.types;
导入COM项目。
导入com.project.modules.persist.persist;
导入com.project.modules.persist.PersistException;
导入com.project.modules.persist.entity.EntityPersisterBase;
导入org.hibernate.Query;
/* 
*版权所有(c)2006-2014 Make Sence Florida Inc。
*/
公共类PrincipalPersister扩展EntityPersisterBase{
私有静态最终长serialVersionUID=-49958433413782923L;
@凌驾
公共数据源类型getType(){
返回DataSourceType.Discovery;
}
@凌驾
受保护的SecurityPrincipalEntity createNewPersistedClass()引发PersistException{
试一试{
返回新的SecurityPrincipalEntity();
}捕获(可丢弃的e){
抛出新的持久异常(e);
}
}
@凌驾
受保护的查询GetDeleteAllentiesQuery(){
返回Persist.session(getType()).createQuery(“从SecurityPrincipalEntity删除”);
}
@凌驾
受保护的SecurityPrincipalEntity fetchByKeyFromDb(长密钥)引发持久异常{
return(SecurityPrincipalEntity)Persist.session(getType())
.get(SecurityPrincipalEntity.class,key);
}
@凌驾
受保护的查询getFetchBatchQuery(){
返回Persist.session(getType())
.createQuery(“按c.key从SecurityPrincipalEntity c订单中选择c”);
}
@凌驾
受保护的查询getFetchAllQuery()引发PersistException{
返回Persist.session(getType()).createQuery(“从SecurityPrincipalEntity e中选择e”);
}
@凌驾
受保护的查询GetCountAllentiesQuery(){
返回Persist.session(getType())
.createQuery(“从SecurityPrincipalEntity c中选择计数(c”);
}
@凌驾
受保护类[]getTypes(){
返回新类[]{SecurityPrincipalEntity.Class};
}
@凌驾
受保护的查询deleteEntityByKeyQuery(){
返回Persist.session(getType())
.createQuery(“从SecurityPrincipalEntity r中删除,其中r.key=?”;
}
@凌驾
受保护的字符串getPersistName(){
返回“普林西”
package com.project.modules.security.types;

import com.project.modules.foundation.topology.datasource.DataSourceType;
import com.project.modules.persist.Persist;
import com.project.modules.persist.PersistException;
import com.project.modules.persist.entity.EntityPersisterBase;
import org.hibernate.Query;

/* 
* Copyright (c) 2006 - 2014 Make Sence Florida Inc.
*/

public class PrincipalPersister extends EntityPersisterBase<Long, SecurityPrincipalEntity> {

private static final long serialVersionUID = -49958433413782923L;

@Override
public DataSourceType getType() {
return DataSourceType.Discovery;
}

@Override
protected SecurityPrincipalEntity createNewPersistedClass() throws PersistException {
try {
return new SecurityPrincipalEntity();
} catch (Throwable e) {
throw new PersistException(e);
}
}

@Override
protected Query getDeleteAllEntitiesQuery() {
return Persist.session(getType()).createQuery("delete from SecurityPrincipalEntity ");
}

@Override
protected SecurityPrincipalEntity fetchByKeyFromDb(Long key) throws PersistException {
return (SecurityPrincipalEntity) Persist.session(getType())
.get(SecurityPrincipalEntity.class, key);
}


@Override
protected Query getFetchBatchQuery() {
return Persist.session(getType())
.createQuery("select c from SecurityPrincipalEntity c order by c.key");
}

@Override
protected Query getFetchAllQuery() throws PersistException {
return Persist.session(getType()).createQuery("select e from SecurityPrincipalEntity e");
}

@Override
protected Query getCountAllEntitiesQuery() {
return Persist.session(getType())
.createQuery("select count(c) from SecurityPrincipalEntity c");
}

@Override
protected Class<?>[] getTypes() {
return new Class<?>[]{SecurityPrincipalEntity.class};
}

@Override
protected Query deleteEntityByKeyQuery() {
return Persist.session(getType())
.createQuery("delete from SecurityPrincipalEntity r where r.key = ?");
}

@Override
protected String getPersistName() {
return "principal";
}

}

      END SUBMISSION 
    END SUBMISSION 
 END SUBMISSION