Hibernate链接的坑

今天在尝试hibernate链接sqlserver数据库时,出了二个问题

1、org.hibernate.MappingException: Unknown entity: user.JshCat

简单的说就是hibernate不理解我创建的实体类,这说明我的实体类没有和hibernate读出来,那问题出在哪里呢

(1)原因是我没有把注解的实体类和hibernate联系起来,在hibernate.cfg.xml中mapping一下就行

(2)很有可能是SessionFactory创建出错,我这个地方是StandardServiceRegistryBuilder被弃用了

// 创建配置对象

Configuration config = new Configuration().configure();

// 创建服务注册对象(hibernate4.35之后该方法就不能再获取到实体信息了)

StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()

        .applySettings(config.getProperties()).build();

// 创建会话工厂对象

sessionFactory = config.buildSessionFactory(serviceRegistry);

// 创建会话

session = sessionFactory.openSession();

// 开启事务

transaction = session.beginTransaction();

    hibernate4.35之后sessionFactory获取方式

1

2

3

4

5

6

// 创建会话工厂对象

sessionFactory = new Configuration().configure().buildSessionFactory();

// 创建会话

session = sessionFactory.openSession();

// 开启事务

transaction = session.beginTransaction();

 

2、com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'jsh_chat' 无效。

这个的意思是指我在entity中注解的数据库表名无效,我对了一下数据库,是正确的呀!那问题又处在哪里呢?

原来我的数据库,有两个DatabaseName数据源,我没有指明数据源,连接数据库成功之后,hibernate在根目录下没找到这张表,所以我们要为hibernate指定数据源链接

<property name="connection.url">jdbc:sqlserver://xxx.xx.xxx.xxxxx:xxxx;DatabaseName=数据源名</property>

这样配置一下就好了,可是这样我又有了一个新的问题,那就是当我要连接另一个数据源时,怎么办,我不能老是去更改数据源名啊!来个大神解答下呗!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值