gpt4 book ai didi

java - 使用 Hibernate 和 SQL Server 2008 的问题

转载 作者:搜寻专家 更新时间:2023-11-01 02:55:04 24 4
gpt4 key购买 nike

我在使用 Hibernate 和 SQL Server 2008 时遇到问题。当我尝试将对象保存到数据库时,Hibernate 会抛出此消息:

could not retrieve snapshot: com.my.MyClass

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name `'emanagement.patient_visit'.`

用户在数据库中具有选择、插入、更新权限。所以我排除了这个问题。

这是生成的 SQL:

select
patientvis_.account_number,
patientvis_.status as status1_,
patientvis_.cpt_code as cpt3_1_,
patientvis_.locked as locked1_,
patientvis_.state as state1_,
patientvis_.userid as userid1_
from
emanagement.patient_visit patientvis_
where
patientvis_.account_number=?

如果我在 SQL Server 中运行上面的 SQL,它会提示对象名称 emanagement.patient_visit 无效,但如果我手动添加“dbo”emanagement.dbo.patient_visit,它将被执行。

那么我还需要进行任何其他 Hibernate 配置吗?

这是我的 Hibernate 映射。下面的映射在 MySQL 下工作。我可以读取和更新数据库中的 patient_visit。但是当切换到 MS Server 时它失败了。我尝试过其他适用于 MySQL 和 MS Server 的 hibernate 映射,它们都使用与下面相同的声明,如 table="db_table"schema="my_database"。唯一的区别是我在 MS Server 下创建了这个新的 emanagement 数据库,所以我认为我错过了 MS Server 管理工具上的一些特定数据库配置。证明这一点的唯一方法是将新表从 emanagement 移动到现有数据库并查看它是否有效。

<class name="com.domain.patient.model.PatientVisit" table="patient_visit"    schema="emanagement">
<id name="accountNumber" type="java.lang.Long">
<column name="account_number" precision="22" scale="0" />
<generator class="assigned"/>
</id>
<property name="status" type="string">
<column name="status"/>
</property>
<property name="cptCode" type="string">
<column name="cpt_code"/>
</property>
<property name="locked" type="boolean">
<column name="locked" precision="1" scale="0"/>
</property>
<property name="state" type="string">
<column name="state"/>
</property>
<property name="userId" type="string">
<column name="userid"/>
</property>
<set name="documents" lazy="false">
<key column="account_number"/>
<one-to-many class="com.domain.document.model.Document"/>
</set>
</class>

提前致谢。

最佳答案

So is there any other Hibernate configuration I need to make?

根据您当前的设置,我想您必须指定架构。例如,在映射中:

<class name="Users" table="Users" schema="dbo" catalog="suiteaccess">

但您也可以使用 hibernate.default_schema 属性指定默认模式(参见 3.4. Optional configuration properties )。

以防万一,你可以create your own schema .

关于java - 使用 Hibernate 和 SQL Server 2008 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com