[Hibernate + JPA] Invertendo Insert do nada

Senhores

alguem poderia me tirar uma duvida? Sou principiante no Hibernate e estou me afogando aqui com essa API…

Estou tentando fazer um relacionamento 1…N em JPA com ele, e aparentemente ele INVERTEU a ordem do insert por livre e espontanea vontade… seguem as classes

Se alguem puder tambem conferir se este mapeamento esta certo… pq realmente, estou começando a ficar perdido… as entidades são:

Computador.class

@javax.persistence.Entity
@javax.persistence.Table(name="tb_computador")
public class Computador implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5489913662420004430L;
	@EmbeddedId
	private ComputadorPK id = new ComputadorPK();
	@Column(name="desktop")
	private Boolean desktop;
	@Column(name="nome")
	private String nome;
	@Column(name="tipo")
	private String tipo;
	@Column(name="modelo")
	private String modelo;
	@Column(name="fabricante")
	private String fabricante;
	@Column(name="serial")
	private String serial;
	@Column(name="bios_fabricante")
	private String biosFabricante;
	@Column(name="bios_versao")
	private String biosVersao;
	@Column(name="usuario_logado")
	private String usuarioLogado;
	@Column(name="memoria_total")
	private Long memoriaTotal;
	@Column(name="memoria_maxima")
	private Long memoriaMaxima;
	
	@OneToMany(fetch = FetchType.LAZY, cascade=CascadeType.ALL)
		@JoinColumns({
		@JoinColumn(name="machine_id"),
		@JoinColumn(name="data_coleta")
	})
	private List<Processador> processador = new Vector<Processador>(0);

ComputadorPK.class

@Embeddable
public class ComputadorPK implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 8217839634047714977L;

	@Column(name="machine_id", nullable = false)
	private String machineID;
	
	@Column(name="data_coleta", nullable = false)
	private Date dataColeta;

Processador.class

@Entity
@Table(name="tb_processador")
public class Processador implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4885269978524490258L;
	@EmbeddedId
	private ComputadorPK id = new ComputadorPK();
//	private long procId;
	@Column(name="cpu_id")
	private String cpuId;
	@Column(name="nome")
	private String nome;
	@Column(name="fabricante")
	private String fabricante;
	@Column(name="descricao")
	private String descricao;
	@Column(name="soquete")
	private String soquete;
	@Column(name="clock")
	private Integer clock;

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
  <property name="hibernate.connection.password">*********</property>
  <property name="hibernate.connection.url">jdbc:postgresql:JAMDB</property>
  <property name="hibernate.connection.username">***********</property>
  <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
  <property name="hibernate.show_sql">true</property>
  <mapping class="TESTE.Computador"></mapping>
  <mapping class="TESTE.Processador"></mapping>
 </session-factory>
</hibernate-configuration>

Meu DAO de testes…

ublic class TesteDAO {

	private SessionFactory factory;

	public TesteDAO() {
		AnnotationConfiguration conf = new AnnotationConfiguration();
		conf.addAnnotatedClass(TESTE.Computador.class);
		conf.addAnnotatedClass(TESTE.Processador.class);
		conf.configure();
		factory = conf.buildSessionFactory();
	}

	public void insert(Computador a) {
		Session session = factory.openSession();
		Transaction t = session.beginTransaction();
		session.saveOrUpdate(a);
		if (t != null)
			t.commit();
		session.flush();
		session.close();
	}
	
	public static void main(String[] args) {
		TESTE.Computador c = new TESTE.Computador();
		c.setBiosFabricante("ZICA");
		c.setBiosVersao("ASDA");
		c.getId().setDataColeta(Calendar.getInstance().getTime());
		c.setDesktop(true);
		c.setFabricante("FABRICA");
		c.setMemoriaMaxima(1234L);
		c.setMemoriaTotal(4567L);
		c.setModelo("MODELO_ALTERADO");
		c.setNome("ASDA");
		c.setSerial("SERIAL");
		c.setTipo("TYPE");
		c.setUsuarioLogado("ADMINISTRADOR");
		List<TESTE.Processador> s = new Vector<TESTE.Processador>();
		Processador p = new Processador();
		p.setClock(1234);
		p.setCpuId("ASDA1234");
		p.setDescricao("COMPUTADÔ");
		p.setFabricante("AMD");
		p.setNome("ATHLON_ALTERADO");
		p.setSoquete("sock");
		s.add(p);
		c.setProcessadores(s);
		c.generateMachineID();
		p.getId().setMachineID(c.getId().getMachineID());
		p.getId().setDataColeta(c.getId().getDataColeta());
		TesteDAO t = new TesteDAO();
		t.insert(c);
	}

Obrigado!

Esqueci de postar o principal. O Erro: Nos logs do hibernate, ele adiciona na coluna ‘machine_id’ a data da coleta e na coluna ‘data_coleta’ o machineId…

nao consegui entender o motivo desta inversao do insert

algum guru de hibernate pode me ajudar com isso?

OBRIGADO!

UP!

por favor, alguem se habilita em me ajudar?