Hello guys, I am a newbie in Hibernate. Currently I am facing with such problem:
I have such bean:
public class DbInstance { private String name = null; private String guid = null; public DbInstance() { }
public DbInstance(String name) { this.name = name; } public String getGuid() { return guid; }
public void setGuid(String guid) { this.guid = guid; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
@Override public String toString() { return "DbInstance [name=" + name + "]"; }
}
mapping:
<?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="***"> <class name="DbInstance" table="Admin_DatabaseInstance"> <id name="guid" column="DatabaseInstanceId"> <generator class="guid"/> </id> <property name="name" /> </class> </hibernate-mapping>
I want to map mentioned class to already existed table in data base. I can't modify schema of the database.
Table script:
USE [CMTAdmin] GO /****** Object: Table [dbo].[Admin_DatabaseInstance] Script Date: 10/05/2009 14:24:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Admin_DatabaseInstance]( [DatabaseInstanceId] [uniqueidentifier] ROWGUIDCOL NOT NULL, [Name] [nvarchar](50) NOT NULL, [InstancePreferences] [ntext] NOT NULL, [PublisherInsName] [ntext] NULL, [PublisherAdminInsName] [ntext] NULL, CONSTRAINT [PK_DatabaseInstance] PRIMARY KEY CLUSTERED ( [DatabaseInstanceId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
The problem is, when I try to get all records of the DbInstance (for this I have created simple DAO class) I get an exception:
Initial SessionFactory creation failed.org.hibernate.HibernateException: Wrong column type in CMTAdmin.dbo.Admin_DatabaseInstance for column DatabaseInstanceId. Found: uniqueidentifier, expected: varchar(255)
So, there is a problem in mapping of SQL SERVER 2005 uniqueidentifier data type to Java String. Also tried to use UUID -- outcome is the same.
I need a tip - what could be wrong in this situation, any help will be appreciated. Thanks a lot.
|