[Java] [Hibernate] - Errore di casting?!!!

nucce

Utente Attivo
52
0
CPU
AMD Athlon64 X2 500+
Scheda Madre
Asus M3A32-MVP Deluxe WiFi Edition
HDD
Western Digital Raptor 150GB 10.000rpm
RAM
Corsair Dominator 4x2GB 1066GHz
GPU
Sapphire ATi Radeon HD3870
Audio
Creative Sound Blaster Audigy SE
Monitor
Samsung SyncMaster 931BW
PSU
Corsair Tx750w 750W
Case
CoolerMaster Centurion 5
OS
Windows 7 64bit
salve a tutti...sto usando Hibernate (versione 3.2) per un progetto, sto cercando di mappare il database ma ho un paio di problemi...le tabelle che stò cercando di mappare sono le seguenti:

PHP:
  ______________         __________
 |              |       |          |        ___________
 |   CESSIONE   |       |  LAVORO  |       |           |
 |______________|       |__________|       |  CLIENTE  |
 |              | (1,1) |          |       |___________|
 | *IdLavoro    | <---> | *Id      | (1,1) |           |
 |  Descrizione |       | Cliente  | <---> | *Id       |
 |______________|       |__________|       | Nome      |
                                           |___________|

il javabean per la tabella Lavoro:
Codice:
package beans;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

public class Lavoro {
    private int id;
    private Date data;
    private Set cliente = new HashSet();
    public Lavoro(){
        super();
    }
    //Metodi getter
    public int getId(){
        return id;
    }
    public Date getData(){
        return data;
    }
    public Set getCliente(){
        return cliente;
    }
    //Metodi setter
    public void setId(int id){
        this.id = id;
    }
    public void setData(Date data){
        this.data = data;
    }
    public void setCliente(Set cliente){
        this.cliente = cliente;
    }
}
Il bean cessione:
Codice:
package beans;

public class Cessione extends Lavoro{
    private int idLavoro;
    private String descrizione;
    
    public Cessione(){
        super();
    }
    //Metodi getter
    public int getIdLavoro(){
        return super.getId();
    }
    
    public String getDescrizione(){
        return descrizione;
    }
    //Metodi setter
    public void setIdLavoro(int idLavoro){
        super.setId(idLavoro);
    }
    public void setDescrizione(String descrizione){
        this.descrizione = descrizione;
    }
}
Infine il bean cliente:
Codice:
package beans;

public class Cliente {
    
    private int id;
    private String nome;
    
    public Cliente(){
        super();
    }
    
    //Metodi getter
    public int getId(){
        return id;
    }
    
    public String getNome(){
        return nome;
    }
    //Metodi setter
    public void setId(int id){
        this.id = id;
    }
    
    public void setNome(String nome){
        this.nome = nome;
    }
}
Mentre i file xml per il mapping sono:

Lavoro:
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="beans.Lavoro" table="lavoro">
        <id name="id" column="id">
            <generator class="identity"/>
        </id>
        
        <one-to-one name="cliente" class="beans.Cliente"/>
    </class>
</hibernate-mapping>
cessione:
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    
    <class name="beans.Cessione" table="cessione">
        <id name="idLavoro" column="idLavoro">
            <generator class="foreign">
                <param name="property">idLavoro</param>
            </generator>
        </id>
        
        <one-to-one name="idLavoro" class="beans.Lavoro" foreign-key="id" constrained="true"/>
        
        <property name="descrizione"/>
    </class>

</hibernate-mapping>
Cliente:
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    
    <class name="beans.Cliente" table="cliente">
        <id name="id" column="id">
            <generator class="identity"/>
        </id>
        
        <property name="nome"/>
    </class>
    
</hibernate-mapping>
L'errore che mi esce, invece, è il seguente:
Codice:
java.lang.ClassCastException: org.hibernate.type.IntegerType cannot be cast to org.hibernate.type.EntityType
    org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:50)
    org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
    org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
    org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
    org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
    org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
    $Proxy0.save(Unknown Source)
    test.CessioneTest.doGet(CessioneTest.java:58)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Non riesco a capire dove è l'errore!!!...c'è per caso qualche errore nei beans?
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!