powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate+MS SQL Server2000+SP+GUID Проблема.
1 сообщений из 1, страница 1 из 1
hibernate+MS SQL Server2000+SP+GUID Проблема.
    #33672892
_svs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый
Сталкивался ли кто-то со связкой MS SQL Server 2000+Hibernate 3.05
Проблема возникает если первичным ключом в таблице является столбец с типом GUID, вставка в таблицу происходит через хранимую процедуру и второй параметр этой процедуры (возвращает GUID) output.
Файл отображения

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="guid">
<class name="HTest" table="test_table">
    <id name="guid" column="guid_volumn">
    	<generator class="guid"  />
    </id>
   <property name="val" not-null="true"/>
   <sql-insert callable="true" >{call master.dbo.add_val(?,?)}</sql-insert>
 </class>												
</hibernate-mapping>


Таблица и хранимая процедура
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE [dbo].[test_table] (
	[guid_column]  uniqueidentifier ROWGUIDCOL  NOT NULL ,
	[val] [int] NULL 
) ON [PRIMARY]
GO

CREATE   PROCEDURE add_val
	@ip int,
	@op uniqueidentifier  OUTPUT
AS	
 	 Set @op = newid()
	 insert into test.dbo.test_table (guid_column,val) values (@op,@ip)
GO

Класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 public   class  HTest {
	 private  String guid;
	 private   int  val;
	 public  String getGuid() {
		 return  guid;
	}
	 public   void  setGuid(String guid) {
		 this .guid = guid;
	}
	 public   int  getVal() {
		 return  val;
	}
	 public   void  setVal( int  val) {
		 this .val = val;
	}
	 public   void  save(){
		Session session = HibernateUtil.currentSession();
		Transaction t = session.beginTransaction();
		session.save( this );
		t.commit();
	}
}

Вызов

Код: plaintext
1.
2.
3.
4.
guid.HTest t =  new  guid.HTest();
t.setVal( 222 );
t.save();


Получаю


org.hibernate.exception.GenericJDBCException: could not retrieve GUID
................................
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]'uuid' is not a recognized function name.
.....................................
at org.hibernate.id.GUIDGenerator.generate(GUIDGenerator.java:31)
... 17 more


В чём я не прав?
Буду рад толковому совету или ссылки.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate+MS SQL Server2000+SP+GUID Проблема.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]