在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">
<!--
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属性删除掉。