Newsgroup: it.comp.java
Titolo: Hibernate composite-id

Ciao a tutti ,
ho un problema con la composite-id di hibernate
<hibernate-mapping>
<class name="miopackage.nomeClasse" table="nomeTabella">
<composite-id name="id" class="miopackage.ClasseId">
 <key-property name="istanza1" column="ISTANZA_1"
type="java.lang.String"/>
 <key-property name="istanza2" column="ISTANZA_2"
type="java.lang.String"/>
</composite-id>
.... etc
Il prob . è nella classe ClassId.
Questi i due messaggi principali
component class not found
java.lang.ClassNotFoundException
Premetto che la classe implemeta Serializable e override i metodi
equals() e hashCode() e si trova nello stesso package di nomeClasse.
Uso Hibernate 3.1.3 su Jboss 4.0.2
Vi prego aiutatemi sto sbattendo la testa e veo già qualke
gremlins!!!! ;)

 Il prob . è nella classe ClassId.
Che nel file hai chiamato ClasseId. Fosse mai....

no è un esempio che ho fatto....;) i nomi sono giusti!!!!!
grazie cmq.

Nel caso, seguendo gli esempi, la classe che rappresenta la chiave 
composta fosse una inner class prova a scrivere:
<composite-id name="id" class="miopackage.nomeClasse$ClasseId">
invece di
<composite-id name="id" class="miopackage.nomeClasse.ClasseId">

Grazie Francesco ma neanche così va!!!
il messaggio è sempre lo stesso .
Component class not found
Caused By: java.lang.ClassNotFoundException
cmq, per gli appsionati, vi posto il tutto in maniera succinta
--------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
">
<hibernate-mapping>
    <class name="hibernate.mapping.Piano" table="Piano" >
        <composite-id name="id" class="hibernate.mapping.PianoId">
          <key-property name="amministrazione" column="Amminiztrazione"
type="double" />
          <key-property name="annoPiano" column="Anno Piano"
type="double" />
          <key-property name="idRigaPiano" column="ID Riga Piano"
type="java.lang.String" />
        </composite-id>
        <property name="denominazioneRigaPiano" type="string">
            <column name="`Denominazione Riga Piano`" length="256" />
        </property>
	.........altre property
    </class>
</hibernate-mapping>
----------------------------------------------------------------
package hibernate.mapping;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Piano  implements java.io.Serializable {
     private PianoId id;/*<---- QUESTO E' L' ID INCRIMINATO */
     private String denominazioneRigaPiano;
     ......altre var
     ....costruttore
     .....  get & set
----------------------------------------------------------------
package hibernate.mapping;
public  class  PianoId  implements java.io.Serializable {
      private double amministrazione;
      private double annoPiano;
      private String idRigaPiano;
    public PianoId() {
    }
    public boolean equals(Object other) {....}
    public int hashCode() {....}
    get & set ......
}
-----------------------------------------------------------------------
10:02:45,234 INFO  [HbmBinder] Mapping class: hibernate.mapping.Piano
-> Piano
10:02:45,296 INFO  [Configuration] Configured SessionFactory: null
10:02:45,937 INFO  [STDOUT] %%%% Error Creating SessionFactory %%%%
10:02:45,968 INFO  [STDOUT] org.hibernate.MappingException: component
class not found: hibernate.mapping.PianoId
	at
org.hibernate.mapping.Component.getComponentClass(Component.java:105)
.................
.................
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: hibernate.mapping.PianoId
-----------------------------------------------------------------------