我做的工作具体如下: 数据库(我用的是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;
映射代码为: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="namezhujiantest.Nameid_bean" table="kehuhuazhujiantest">
<composite-id name="name" class="namezhujiantest.NameCompositeUserType"> <key-property column="name_value" type="string" name="value"> </key-property> <key-property column="name_units" type="string" name="units"> </key-property> </composite-id> <property name="address" type="string" column="address"/> </class> </hibernate-mapping>
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。
|
|