Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > hibernate + mssql linked server


Автор: zhz 5.3.2012, 09:16
Мне необходимо используя hibernate работать с dBase 4 файлами. Я подключил всю базу к SQL server в качестве Linked Server. Тем самым, запросы в Query Analizer выгялядят так:
select * from LINKEDSERVER...TableName
Подскажите , как правильно сделать маппинг. Если я делаю так

Код

<class name="ru.hugo.infoobj.Infoobject" table="MYDBFs...TableName">


То получаю :
org.hibernate.exception.SQLGrammarException: could not execute query
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
.............................................
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: OLE DB provider 'MYDBFs' does not contain table 'TableName'.  The table either does not exist or the current user does not have permissions on that table.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
........................
    ... 8 more
Если делаю так :
Код

  <class name="ru.hugo.infoobj.Infoobject" table="TableName">

То получаю :
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'TableName'.

При этом, как понимаю, в строке запроса :
Код

List infoobjects = session.createQuery("from TableName").list();


я должен указывать не таблицу, а класс, который мапится на таблицу. 





Автор: zhz 6.3.2012, 00:13
Разобрался. Тему можно закрывать. Вообщем кому интересно: не готов сказать, может ли работать Hibernate c такими атавизмами как FoxPro, MS access, Dbase и т.п(а ), но если у вас появилась необходимость реализовать данную связку, то можно вставить посредника в качестве MS SQL Server создав там Linked Server к базе на диске(или в сети), а с ним уже работать через Hibernate. Только в mapping file нужно указывать таблицу например так:
<class name="package.TableObject" table="LinkedServerName...TableName">

Автор: LSD 6.3.2012, 10:10
А не проще было в MS SQL Server создать алиасы на эти таблицы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)