hibernate5的一些坑

SessionFactory创建的修改

  如果你是刚刚从hibernate4升级到hibernate5,这时候你的项目肯定就要出错了,什么错呢?

  org.hibernate.MappingException: Unknown entity: xx类

  这是因为SessionFactory创建方式变了

  hibernate4

Configuration conf = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    applySettings(conf.getProperties()).build();
SessionFactory sessionFactory = conf.buildSessionFactory(serviceRegistry);

  hibernate5

StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure().build();
Metadata metadata = new MetadataSources(standardRegistry).getMetadataBuilder() .applyImplicitNamingStrategy(ImplicitNamingStrategyComponentPathImpl.INSTANCE).build();
SessionFactory sessionFactory = metadata.getSessionFactoryBuilder().build();

 

hibernate5连接数据库出错

  错误提示

  MySQL server version for the right syntax to use near 'type=InnoDB' at line x

  这个主要是hibernate方言设置出问题了

  修改hibernate.cfg.xml中的dialect,如下

  <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

 

hibernate连接数据库出现乱码或者出现SSL警告

  解决方法如下:

  <property name="connection.url">jdbc:mysql:///maven?characterEncoding=UTF8&amp;userSSL=false</property>

 

maven项目中使用hibernate出错

  出错提示

  org.hibernate.MappingNotFoundException: resource:**.hbm.xml not found

  原因

  原来对于Maven工程,编译的工作是由Maven程序来完成的,而Maven默认只会把src/main/resources文件夹下的文件拷贝到target/classes文件夹下,所以上图中用红框框起来的.hbm.xml都不会被复制到/target/calsses文件夹下,所以Hibernate框架在运行的时候,就会报找不到*.hbm.xml的错误。

  解决办法

  在pom.xml下添加以下代码

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

 

转载于:https://www.cnblogs.com/simfg/p/6853568.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值