hibernate配置文件中的catalog属性

在hibernate表的映射文件中

<hibernate-mapping>
    <class name="com.sooyie.hibernate.orm.Link" table="Link" schema="dbo" catalog="Sx_jsqc">

报错:java.sql.SQLException: 服务器主体 "soft" 无法在当前安全上下文下访问数据库 "Sx_jsqc"。

net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:364)
net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2778)
net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2214)
net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:597)
net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:343)
net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:665)
org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
org.hibernate.loader.Loader.doQuery(Loader.java:662)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:47)
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:41)
org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2730)
org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:365)
。。。

由于原来的数据库名为Sx_jsqc,现在改为soft后,需要替换为catalog="soft"

以前看资料,总说让把这个catalog的东西删除了,今天终于体会到了。



================================================
我用myEclipse开发,基本上POJO和hbm.xml的配置文件都是自动生成的, 
自动生成好的配置文件里面有一个 <catalog>这个属性,默认是数据库名 
我怎么看到好多资料上面建立把这个属性去掉,说可能出现文件,怎么我没有出现过什么问题, 
究竟这个属性有什么用??

下面的catalog="onlinetest"指定了数据库为onlinetest,弄得我一直在纳闷前面的hibernate.cfg.xml里的connection.url指定的databaseName怎么就不见效果了呢。看来学习上还要认真才是!


<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!--   
&nbsp; &nbsp;Mapping file autogenerated by MyEclipse - Hibernate Tools 
--> 
<hibernate-mapping> 
    <class name="onlinetest.Hibernate.Teacher" table="teacher" catalog="onlinetest"> 
        <id name="id" type="integer"> 
            <column name="id" /> 
            <generator /> 
        </id> 
        <property name="name" type="string"> 
            <column name="name" length="20" /> 
        </property> 
        <property name="password" type="string"> 
            <column name="password" length="50" not-null="true" /> 
        </property> 
    </class> 
</hibernate-mapping>

总结:

把配置文件中的catalog属性删除掉。

原文地址:https://www.cnblogs.com/toSeeMyDream/p/6126180.html