Salve a tutti,
mi sto approcciando ora a hibernate ammetto nona non senza delle difficolta data la mia scarsa e obsoleta preparazione in ambito db.

Cio che vorrei fare è mappare una semplice classe Customer che contiene una List di oggetti Name come di seguito:

codice:
@Entity
public class Customer implements Serializable{
	@XmlAttribute(name="rid")
	public String rid;
	@XmlAttribute(name="simpleName")
	public String simpleName;
	@XmlElement(name = "name")
	public List<Name> name;

	@Id 
	@GeneratedValue(generator="hibernate-uuid")
	@GenericGenerator(name="hibernate-uuid", strategy = "uuid")
	public String getRid() {
		return rid;
	}
	
	public String getSimpleName() {
		return simpleName;
	}
    
	@OneToMany(targetEntity=Name.class, mappedBy="customer", cascade=CascadeType.ALL, fetch=FetchType.LAZY )
	public List<Name> getName() {
		return name;
	}

	public void setRid(String rid) {this.rid = rid;}
	public void setSimpleName(String simpleName) {this.simpleName = simpleName;}
	public void setName(List<Name> name) {this.name = name;}
}
codice:
@Entity
public class Name implements Serializable {
	@XmlAttribute(name = "rid")
	public String rid;
	@XmlElement(name = "description")
	public String description;
	@XmlElement(name = "language")
	public String language;
	public Customer customer;
	
	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	public String getRid() {
		return rid;
	}

	@ManyToOne
	@JoinColumn(name = "name")
	public Customer getCustomer() {
		return customer;
	}

	public String getDescription() {return description;}
	public String getLanguage() {return language;}

	public void setRid(String rid) {this.rid = rid;}
	public void setDescription(String description) {this.description = description;}
	public void setLanguage(String language) {	this.language = language;}
	public void setCustomer(Customer Customer) {this.customer = Customer;}
}
Cio che ottengo è:

codice:
    create table Name (
        rid varchar(36) not null,
        description varchar(255),
        language varchar(255),
        name varchar(36),
        primary key (rid)
    )

    create table customer (
        rid varchar(36) not null,
        simpleName varchar(255),
        primary key (rid)
    )

    alter table Name 
        add index FK24EEAB295251 (name), 
        add constraint FK24EEAB295251 
        foreign key (name) 
        references customer (rid)
A questo cerco di aggiungere un Customer al mio db...

codice:
	private static void newCustomer(){
		Customer customer = new Customer();
		ArrayList<Name> nameList = new ArrayList<Name>();
		Name name = new Name();
		name.setDescription("Duke");
		name.setLanguage(Language.EN.toString());
			nameList.add(name);
		name.setDescription("Duca");
		name.setLanguage(Language.IT.toString());
			nameList.add(name);
		name.setDescription("Ducas");
		name.setLanguage(Language.DE.toString());
			nameList.add(name);
		
		customer.setSimpleName("duke");
		customer.setName(nameList);
		 
		dbEngine.createBean(DbSchemas.MANAGEMENT, customer);
	}

	public void createBean(DbSchemas dbSchemas, Object bean) {
		DbConnector connector = getDbConnector(dbSchemas);
		connector.getConfiguration().addAnnotatedClass(bean.getClass());
		Transaction tx = null;
		Session session = connector.getSessionFactoryUtil().getInstance().getCurrentSession();
		connector.getSessionFactoryUtil().openSession();
		try {
			tx = session.beginTransaction();
			session.save(bean);
			tx.commit();
		} catch (RuntimeException e) {
			if (tx != null && tx.isActive()) {
				try {
					// Second try catch as the rollback could fail as well
					tx.rollback();
				} catch (HibernateException e1) {
					System.out.println("Error rolling back transaction");
				}
				// throw again the first exception
				throw e;
			}
		}
	}
ma ottengo:

codice:
Exception in thread "main" org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: migration.masterDataSet.management.contacts.Customer.name[migration.masterDataSet.management.contacts.Name]
	at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1160)
	at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:691)
	at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:626)
	at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:66)
	at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1586)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1359)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
	at migration.hibernate.dBServices.SessionFactoryUtil.<init>(SessionFactoryUtil.java:27)
	at migration.hibernate.dBServices.DbConnector.getSessionFactoryUtil(DbConnector.java:28)
	at migration.hibernate.dBServices.DbEngine.createBean(DbEngine.java:119)
	at migration.hibernate.dBServices.MigrationDbCreator.newCustomer(MigrationDbCreator.java:55)
	at migration.hibernate.dBServices.MigrationDbCreator.main(MigrationDbCreator.java:22)
Credo che il problema sia dato dal fatto che nella mia tabella Customer non esista di fatto una colonna name.
Ho sbagliato qualcosa nell'implementazione oppure significa che devo io salvare gli oggetti name separatamente nella tabella Name e di conseguenza anche quando carichero un oggetto Customer dovro andare a caricare la List<Name> separatamente e settarla al suo customer?

Potete aiutarmi a capire concettualmente dove sta l'errore...
Grazie in anticipo per ogni aiuto.