HIBERNATE的自定义类型主键的映射??


有谁用过HIBERNATE的自定义类型主键映射吗??怎么可以正确映射??希望可以交流探讨!!


我是通过实现CompositeUserType接口,然后映射的时候用Composite-id语句的。但是不可以啊。具体映射如下:






结果报错啊。请问大家做过的是怎么做的呢??

>自定义类型主键映射
使用assigned

但是,使用自己产生主键,会有很多问题,尤其处理父子关系时。

首先非常感谢您的回复!!

您可以说的具体点吗?用assigned??

我也知道使用自然主键有一定的缺点,但现在我们设计就采用的是这种方法,所以请您指点下用assigned怎么做??
再次表示感激!

我做的工作具体如下:
数据库(我用的是Postgresql)表中的主键是自定义类型的,要通过HIBERNATE映射为JAVA持久化类的自定义类型主键。程序代码如下,但总报错,恳请指点!

其中数据库表为:
CREATE TABLE kehuhuazhujiantest
(
name_value varchar(48) NOT NULL,
name_units varchar(48) NOT NULL,
address varchar(48),
CONSTRAINT id PRIMARY KEY (name_value, name_units)
)
WITHOUT OIDS;
ALTER TABLE kehuhuazhujiantest OWNER TO pgsql;

映射代码为:

"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">









JAVA类为:
Name.java为:
public class Name implements Serializable {
private String units;
private String value;
get,set方法……equals和hashCode方法……
NameCompositeUserType为:
NameCompositeUserType实现CompositeUserType。
Nameid_bean为:
private Name name;
private String address;
get和set方法……
测试文件是要求打印出name和address。