Tenho um código que funciona bem no JPA usando o Hibernate como provider.
[code]Customer customer = em.find(10, Customer.class);
// aqui eu associo uma tarifa ao cliente
customer.setRate(new Rate(1));[/code]
No caso eu mando salvar isso no Hibernate e funciona bem. O Hibernate vê que eu quero apenas associar uma tarifa no objeto customer e no final o comando SQL gerado é:
Porém rodando no Eclipselink/Toplink retorna erro, pois ele tenta incluir o objeto Rate ao invés de apenas atualizar o customer.
Call: INSERT INTO RATE (ID, VALUE0, DESCRIPTION, VALUE, VALUE1) VALUES (?, ?, ?, ?, ?)
bind => [1, null, null, null, null]
No mapeamento das entidades não há cascade, sendo assim ele não deveria fazer nada. Como o Eclipselink trata esses objetos? Eu devo fazer alguma coisa antes de salva-los?