映射用戶數據類型(複合型)我很新的休眠的世界。 我已經ER CASE工具(蟾蜍)我的數據庫來建模,我已經定義了幾個用戶數據類型(複合型)。例如,假設我有一個類型的聯繫聲明爲按照PostgreSQL的如何與Hibernate
CREATE TYPE Contact AS
("email" Varchar,
"phone" Varchar,
"mobile" Varchar,
"other" Varchar);
現在假設我在下面的SQL代碼
CREATE TABLE Users(
idUser Serial NOT NULL,
login Character varying(20) NOT NULL,
password Character varying(20) NOT NULL,
name Character varying(30),
surname Character varying(50),
contact Contact
)
-- Add keys for table Users
ALTER TABLE Users ADD CONSTRAINT pkIdUser PRIMARY KEY (idUser)
;
我已經配置使用它的用戶實體喜歡和使用Hibernate的工具做反向ER模型的工程,而是因爲它被映射爲Serializable,而不是作爲一個自定義類型,我想有是定義一個跟Hibernate的用戶等級和積分,並根據反向改變我對聯繫用戶類型的定義問題Hibernate工具的.xml文件.....但是當我嘗試使用我的UserType實現時,我獲得了以下消息:
「org.hibernate.cfg.JDBCBinderException:在表上找到類型it.mypackage.FullContactInfoType:users列:fullcontactinfo跨越多個列。只允許單列類型。 類型it.mypackage.FullContactInfoType上表中找到:用戶柱:fullcontactinfo跨越多個列。只允許單列類型。 「
你有沒有關於如何實現這一目標?一個簡單的例子,一些鏈接到現在爲止,我沒有去過能夠映射用戶數據類型......我正在考慮刪除用戶數據類型從ER模型,爆炸是由至極的領域。
我使用Hibernate 3.5.4
的問候,並預先感謝您的支持。
嗨Sathish所在感謝你回答,我已經有用戶類型玩,但我沒有的強校做,當我宣佈在reveng.xml配置文件與我的用戶的映射類型我獲得了一個org.hibernate.cfg.JDBCBinderException,因爲我在我的文章上寫過。 我想做什麼,我已經通過ER的方式建模的逆向工程....但是我會再考慮你的建議,然後再試一次該解決方案....只是一個問題nullSafeGet的簽名(的ResultSet結果集,字符串[]名稱,對象所有者),而不是你報告的那個......或者我錯過了什麼? Regards – quonn 2012-03-15 08:09:57
你是正確的nullSafeGet,沒有意識到我爲每個對象創建了一個數組,謝謝。另一個驗證,如果你碰巧看到http://www.hibernatespatial.org/tutorial.html鏈接的映射?有一個示例映射文件可能對同行評審有用。乾杯。 – 2012-03-15 14:34:59
其實我已經開發出任意變換的對象圖向PostgreSQL所使用的行格式定義一個結構,我讓它與pgobject的在我的用戶類型綁定我的強校,但是當我看到在生成的SQL代碼,它冤屈,因爲加一個RowEconder '它沒有去做......它在內部使用,當我給PGObject setStringParameter方法....所以這是結果 '行(行(''意大利'',''國家'', '通過考試 '',345 '' 00155 ''),ROW( '' [email protected]',NULL,NULL,NULL)) '的 代替 ROW(ROW( '意大利',' 國家','Via Andrea Noale',345,'00155'),ROW('pippo @ pippo.it',null,null,null))'.... – quonn 2012-03-15 18:20:56