Mapeamento de Classe e Super Classe

Boas pessoal.

Estou a tentar desenvolver uma aplicação que usa struts2, hibernate e spring.

Já consegui alguns resultados.
No entanto, estou com um problema em inserir registos na base de dados.

O erro que dá é o seguinte:

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:622)

Eu tenho o seguinte codigo:

[code]public class Carro{
private int id;
private string marca;
private Motor motor;
blá blá blá;
}

public class Motor{
private int id;
private int cavalos;
}
[/code]

A relação na base de dados é de 1<->1 (claro…) e por isso existe na tabela carro, como chave estrangeira o id do motor correspondente.

O que eu quero é que quando crio um novo carro ele insira tudo nas tabelas correspondentes. O problema penso que está a gerar o id do motor e a inseri-lo na coluna certa da tabela carro.

&lt;s&#58;form method=&quot;post&quot; action=done&gt;
&lt;h4&gt;Carro&lt;h4&gt;
&lt;s&#58;textfield name=&quot;carro.marca&quot;/&gt;

&lt;h4&gt;Motor&lt;/h4&gt;
&lt;s&#58;textfield name=&quot;carro.motor.cavalos&quot;/&gt;

&lt;s&#58;submit name=&quot;method=submit&quot; value=....&gt;

Alguém me pode ajudar?
Obrigado desde já.

l1nk,

Este é o mesmo caso do seu outro post relacionado a Pessoa e Carro.

Note bem! O que vc quer é que o objeto da classe carro gerencie motor, para isso vc precisa definir no mapeamento Carro.hbm.xml cascade=“all”

&lt;many-to-one name=&quot;motor&quot; column=&quot;motor_id&quot; cascade=&quot;all&quot;
         class=&quot;com.testecenter.model.Motor&quot; lazy=&quot;false&quot;/&gt;

@braços,
Cleiton

Obrigado pela ajuda.
Vou experimentar a tua sugestão.

Por favor, dá uma olhada no outro post que eu coloquei sobre List e Struts2. Tá um pouco mais acima :grin: