2012-05-25 85 views
1

我正在开发基于Mybatis 3.0.5,Mybatis-spring 1.0.1和Spring 3.0.5.RELEASE的Java EE应用程序,并且我在mybatis-config.xml中发现了一个使用别名的问题。跟踪是:Mybatis配置类型别名

org.springframework.beans.factory.BeanCreationException:
错误创建名称为豆 '的SqlSessionFactory' 在ServletContext的资源[/WEB-INF/applicationContext.xml的]定义:
的init调用方法失败;嵌套的异常是org.springframework.core.NestedIOException:
无法解析配置资源:class path resource [mybatis-config.xml];嵌套异常是org.apache.ibatis.builder.BuilderException:
解析SQL映射器配置时出错。原因:org.apache.ibatis.builder.BuilderException:
为'accesoUsuario'注册typeAlias时出错。原因:抛出java.lang.ClassNotFoundException:
找不到类:包装省略BY ME] .AccesoUsuario

我怎样才能解决这个问题呢?

这是我的mybatis-config.xml(MYPACKAGE = es.my.package)。

<settings> 
    <setting name="lazyLoadingEnabled" value="false" /> 
    </settings> 

<typeAliases> 
    <typeAlias alias="accesoUsuario" type="MYPACKAGE.persistencia.entidades.AccesoUsuario" /> 
    <typeAlias alias="agrupacion" type="MYPACKAGE.persistencia.entidades.Agrupacion" /> 
    <typeAlias alias="consulta" type="MYPACKAGE.persistencia.entidades.Consulta" /> 
    <typeAlias alias="consultaDim" type="MYPACKAGE.persistencia.entidades.ConsultaDim" /> 
    <typeAlias alias="consultaFiltro" type="MYPACKAGE.persistencia.entidades.ConsultaFiltro" /> 
    <typeAlias alias="dato" type="MYPACKAGE.persistencia.entidades.Dato" /> 
    <typeAlias alias="dimension" type="MYPACKAGE.persistencia.entidades.Dimension" /> 
      <typeAlias alias="dominio" type="MYPACKAGE.persistencia.entidades.Dominio" /> 
      <typeAlias alias="dominioDep" type="MYPACKAGE.persistencia.entidades.DominioDep" /> 
      <typeAlias alias="entidad" type="MYPACKAGE.persistencia.entidades.Entidad" /> 
    <typeAlias alias="error" type="MYPACKAGE.persistencia.entidades.ErrorProceso" /> 
    <typeAlias alias="informe" type="MYPACKAGE.persistencia.entidades.Informe" /> 
    <typeAlias alias="informeCabecera" type="MYPACKAGE.persistencia.entidades.InformeCabecera" /> 
    <typeAlias alias="informeSeccion" type="MYPACKAGE.persistencia.entidades.InformeSeccion" /> 
    <typeAlias alias="restriVariable" type="MYPACKAGE.persistencia.entidades.RestriVariable" /> 
    <typeAlias alias="usuario" type="MYPACKAGE.persistencia.entidades.Usuario" /> 
    <!-- ... --> 
      <typeAlias alias="cadena" type="java.lang.String" /> 
</typeAliases> 
+0

请将您的映射发布到mybatis-config.xml文件中。 – Seth

回答

0

没有看到一些实际的源代码,我怀疑我们可以找出任何错误,但它可能有助于take a look at this example on DZone

他们特别指出的一件事是,如果您不遵循mybatis-config.xml文件中的正确顺序,它可能会导致异常。这可能是因为某个文件中的错误位置。

如果你想发布更多的代码,我可以尝试提供更多帮助。

0

您的软件包不适用于myBatis。您需要使用配置来定义它:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="es.your.packacke"/> 
</bean> 
+0

再次嗨!感谢您的建议@jddsantaella,但我的应用程序中已经有了这个bean -Context.xml。下面是: <属性名= “basePackage” 值= “es.my.package.persistencia.dao”/> – vicmonmena

+1

尝试移除类型accesoUsuario“,”agrupacion“等类型的别名。因为别名是自动完成的,所以我不认为这些是必要的。 – jddsantaella