title: How to map User Data Type (Composite Type) with Hibernate
body: <p>I am quite new to Hibernate world.
  I have modeled by means of ER CASE TOOL (TOAD) my database and I have defined several User Data Type (Composite Type). For example assume I have a type Contact declared as follow in PostgreSQL</p>
  
  <pre><code>CREATE TYPE Contact AS
  ( "email" Varchar,
  "phone" Varchar,
  "mobile" Varchar,
  "other" Varchar );
  </code></pre>
  
  <p>Now assume i use it on Users Entity like in the following SQL code</p>
  
  <pre><code>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)
  ;
  </code></pre>
  
  <p>I have configured and used Hibernate Tools to do a reverse engineering of ER model, but I have problem on the definition of the Contact user type because it is mapped as Serializable and not as a custom type, What I am trying to have is to define a Contact Hibernate UserType and change according the reverse.xml file of the Hibernate Tools.....but when I try to use my implementation of the UserType I obtain this message:</p>
  
  <blockquote>
    <p>"org.hibernate.cfg.JDBCBinderException: The type it.mypackage.FullContactInfoType found on Table: users column: fullcontactinfo spans multiple columns. Only single column types allowed.
    The type it.mypackage.FullContactInfoType found on Table: users column: fullcontactinfo spans multiple columns. Only single column types allowed.
      
    "</p>
  </blockquote>
  
  <p>Have you some link on a simple example on how to achieve this?. Until now I was not been to able to map the user data type...I am considering to remove the User Data Type from the ER model and explode the fields of wich it is composed.</p>
  
  <p>I am using Hibernate 3.5.4 </p>
  
  <p>Regards and thanks in advance for your support.</p>