Problema con Hibernate

Riuzaki
sto cercando di risolvere un esercizio assegnatoci all'università...ho realizzato il mapping tra le classi e il database mysql con JPA ed ora sto cercando di controllare se riesco effettivamente a lavorare con questi dati.
La funzione di test del DB è la seguente:

	public static void dst01() {
		Configuration config = new Configuration();

		config.addAnnotatedClass(Address.class);
		config.addAnnotatedClass(Admin.class);
		config.addAnnotatedClass(Cluster.class);
		config.addAnnotatedClass(Computer.class);
		config.addAnnotatedClass(Environment.class);
		config.addAnnotatedClass(Execution.class);
		config.addAnnotatedClass(Grid.class);
		config.addAnnotatedClass(Job.class);
		config.addAnnotatedClass(MemberShip.class);
		config.addAnnotatedClass(User.class);

		config.configure();
		
		new SchemaExport(config).create(true, true);

		SessionFactory factory = config.buildSessionFactory();

		Session session = factory.openSession();

		session.beginTransaction();

		session.save(new Address("via morandi", "praga", "99303", 1));
		
		List<Cluster> cl = new ArrayList<Cluster>();
		
		Cluster c = new Cluster(1, "first", new Date(2012, 2, 4), new Date(2012, 12, 19));
		cl.add(c);
		session.save(c);
		
		Cluster c1 = new Cluster(2, "second", new Date(2012, 2, 4), new Date(2012, 2, 9));
		cl.add(c1);
		session.save(c1);
				
		Cluster c2 = new Cluster(3, "terzo", new Date(2012, 2, 14), new Date(2012, 2, 19));
		cl.add(c2);
		session.save(c2);
				
		Cluster c3 = new Cluster(4, "quarto", new Date(2012, 2, 14), new Date(2012, 2, 19));
		cl.add(c3);
		session.save(c3);
				
		Cluster c4 = new Cluster(5, "quinto", new Date(2012, 12, 24), new Date(2012, 21, 23));
		cl.add(c4);
		session.save(c4);
		
		Address a = new Address("via bruzi", "Vienna", "880292", 1);
		session.save(a);
		
		Address a1 = new Address("via lamo", "Vienna", "881292", 2);
		session.save(a1);
		
		Address a2 = new Address("via borghera", "Vienna", "881392", 3);
		session.save(a2);
		
		Address a3 = new Address("via magagna", "Vienna", "881395", 4);
		session.save(a3);
		
		Address a4 = new Address("via luppolo", "Vienna", "882395", 5);
		session.save(a4);
		
		Admin ad = new Admin(1, "marco", "rossi", a);
		session.save(ad);
		
		Admin ad1 = new Admin(1, "luca", "perfetti", a1);
		session.save(ad1);
		
		Admin ad2 = new Admin(1, "elena", "rossi", a2);
		session.save(ad2);
		
		Admin ad3 = new Admin(1, "girolamo", "verdi", a3);
		session.save(ad3);
		
		Admin ad4 = new Admin(1, "lancillotto", "beckenm", a4);
		session.save(ad4);		
				
		Computer comp = new Computer(1, "asus", 4, "arabia", new Date(2009, 1, 1), new Date(2012, 03, 29));
		session.save(comp);
		
		Computer comp1 = new Computer(2, "asus", 4, "arabia", new Date(2009, 1, 1), new Date(2012, 03, 19));
		session.save(comp1);
		
		Computer comp2 = new Computer(3, "asus", 8, "instanbul", new Date(2006, 1, 1), new Date(2012, 02, 29));
		session.save(comp2);
		
		Computer comp3 = new Computer(4, "asus", 4, "arabia", new Date(2007, 1, 1), new Date(2012, 01, 19));
		session.save(comp3);
		
		Computer comp4 = new Computer(5, "asus", 8, "grecia", new Date(2009, 1, 1), new Date(2012, 03, 29));
		session.save(comp4);
	
		Environment e = new Environment(1, "fast");
		session.save(e);
		
		Environment e1 = new Environment(2, "slow");
		session.save(e1);
		
		Environment e2 = new Environment(3, "medium");
		session.save(e2);
		
		Environment e3 = new Environment(4, "fast");
		session.save(e3);
		
		Environment e4 = new Environment(5, "fast");
		session.save(e4);
		
		Job j = new Job(1, 4, 20, true, e);
		session.save(j);

		Job j1 = new Job(2, 4, 20, true, e1);
		session.save(j1);

		Job j2 = new Job(3, 8, 14, false, e2);
		session.save(j2);

		Job j3 = new Job(4, 4, 20, true, e3);
		session.save(j3);

		Job j4 = new Job(5, 6, 12, true, e4);
		session.save(j4);
		
		
		Execution ex = new Execution(1, new Date(2012, 2, 2), new Date(2012, 2, 3), JobStatus.FINISHED, j);
		session.save(ex);
		
		Execution ex1 = new Execution(2, new Date(2012, 2, 2), new Date(2012, 2, 3), JobStatus.RUNNING, j1);
		session.save(ex1);
		
		Execution ex2 = new Execution(3, new Date(2012, 2, 5), new Date(2012, 2, 6), JobStatus.FINISHED, j2);
		session.save(ex2);
		
		Execution ex3 = new Execution(4, new Date(2012, 3, 12), new Date(2012, 3, 13), JobStatus.SCHEDULED, j3);
		session.save(ex3);
		
		Execution ex4 = new Execution(5, new Date(2012, 3, 23), new Date(2012, 3, 24), JobStatus.FINISHED, j4);
		session.save(ex4);
		
		Grid g = new Grid(1, "mariabella", "2-floor", 2.3);
		session.save(g);
		
		Grid g1 = new Grid(2, "fedora", "12-floor", 1.3);
		session.save(g1);
		
		Grid g2 = new Grid(3, "landscape", "3-stock", 2.13);
		session.save(g2);
		
		Grid g3 = new Grid(4, "crisis", "last-floor", 4.34);
		session.save(g3);
		
		Grid g4 = new Grid(5, "lendolf", "2-floor", 1.87);
		session.save(g4);
		
		byte[] bytesOfMessage;
		byte[] thedigest = null;
		try {
			bytesOfMessage = "nonlaso".getBytes("UTF-8");

			MessageDigest md = MessageDigest.getInstance("MD5");
			
			thedigest = md.digest(bytesOfMessage);
		} catch (UnsupportedEncodingException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		} catch (NoSuchAlgorithmException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		}
		
		User u = new User(1, "marianna", "borghi", a, "labella", thedigest, "20029202", "22030");
		session.save(u);
		
		try {
			bytesOfMessage = "calamaro".getBytes("UTF-8");

			MessageDigest md = MessageDigest.getInstance("MD5");
			
			thedigest = md.digest(bytesOfMessage);
		} catch (UnsupportedEncodingException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		} catch (NoSuchAlgorithmException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		}
		User u1 = new User(2, "leopoldo", "borghi", a, "arturo", thedigest, "222239202", "21232");
		session.save(u1);
		
		try {
			bytesOfMessage = "miracle".getBytes("UTF-8");

			MessageDigest md = MessageDigest.getInstance("MD5");
			
			thedigest = md.digest(bytesOfMessage);
		} catch (UnsupportedEncodingException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		} catch (NoSuchAlgorithmException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		}
		User u2 = new User(3, "ernaldo", "fuffolo", a3, "ernald", thedigest, "20339202", "23430");
		session.save(u2);
		
		try {
			bytesOfMessage = "nonlaso".getBytes("UTF-8");

			MessageDigest md = MessageDigest.getInstance("MD5");
			
			thedigest = md.digest(bytesOfMessage);
		} catch (UnsupportedEncodingException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		} catch (NoSuchAlgorithmException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		}
		User u3 = new User(4, "carletto", "matusen", a2, "erste", thedigest, "20029222", "22030");
		session.save(u3);
		
		
		try {
			bytesOfMessage = "nonlaso".getBytes("UTF-8");
			
			MessageDigest md = MessageDigest.getInstance("MD5");
			
			thedigest = md.digest(bytesOfMessage);
		} catch (UnsupportedEncodingException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		} catch (NoSuchAlgorithmException e5) {
			// TODO Auto-generated catch block
			e5.printStackTrace();
		}
		User u4 = new User(5, "ercule", "borghi", a4, "ercule", thedigest, "20479202", "22030");
		session.save(u4);
		
		MemberShip m = new MemberShip(1, new Date(2011, 2, 2), 0.5);
		session.save(m);

		MemberShip m1 = new MemberShip(2, new Date(2011, 3, 2), 0.5);
		session.save(m1);

		MemberShip m2 = new MemberShip(3, new Date(2001, 3, 12), 0.75);
		session.save(m2);

		MemberShip m3 = new MemberShip(4, new Date(2009, 5, 17), 0.5);
		session.save(m3);

		MemberShip m4 = new MemberShip(5, new Date(2011, 11, 2), 0.75);
		session.save(m4);
		
		session.getTransaction().commit();
	}


ma ricevo il seguente errore nel momento in cui lancio l'applicazione :

Exception in thread "main" org.hibernate.MappingException: component property not found: id
	at org.hibernate.mapping.Component.getProperty(Component.java:292)
	at org.hibernate.cfg.AnnotationBinder.fillComponent(AnnotationBinder.java:2455)
	at org.hibernate.cfg.AnnotationBinder.fillComponent(AnnotationBinder.java:2336)
	at org.hibernate.cfg.AnnotationBinder.bindComponent(AnnotationBinder.java:2285)
	at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:2021)
	at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:796)
	at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
	at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3977)
	at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3931)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1368)
	at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:972)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:130)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:92)
	at dst1.Main.dst01(Main.java:65)
	at dst1.Main.main(Main.java:35)

Risposte
Riuzaki
Ho dimenticato di incollare anche il codice del file di configurazione:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dst</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">tastiera</property>
		<property name="hibernate.connection.pool_size">10</property>
		<property name="show_sql">true</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		<!-- Mapping files -->
		<!-- <mapping resource="dst1/Computer.hbm.xml" /> -->
	</session-factory>
</hibernate-configuration>


Rispondi
Per rispondere a questa discussione devi prima effettuare il login.