У меня проблемы с использованием 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 в SQL Server, он говорит, что недопустимое имя объекта emanagement.patient_visit, но если я вручную добавлю это "dbo" emanagement.dbo.patient_visit, это будет преследоваться.
Так есть ли какие-либо другие конфигурации Hibernate, которые мне нужно сделать?
Это мое отображение Hibernate. Приведенное ниже отображение работает под MySQL. Я могу читать и обновлять Patient_visit в базе данных. Но при переключении на MS Server происходит сбой.
Я пробовал другие отображения гибернации, которые работают как для MySQL, так и для MS Server, и они оба используют те же объявления, что и ниже, например table = "db_table" schema = "my_database".
Единственное отличие состоит в том, что я создал эту новую базу данных emanagement под MS Server, поэтому я думаю, что пропустил какую-то конкретную конфигурацию базы данных в средстве управления 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>
Заранее спасибо.