Tenho as classes embarcacao(pai), classe jetski(filha) e classe lancha(filha), quanto tento persistir uma embarcacao da o seguinte erro:
20:56:12 INFO [Version ] Hibernate Commons Annotations 3.2.0.Final
20:56:12 INFO [Environment ] Hibernate 3.6.5.Final
20:56:12 INFO [Environment ] hibernate.properties not found
20:56:12 INFO [Environment ] Bytecode provider name : javassist
20:56:12 INFO [Environment ] using JDK 1.4 java.sql.Timestamp handling
20:56:12 INFO [Configuration ] configuring from resource: /hibernate.cfg.xml
20:56:12 INFO [Configuration ] Configuration resource: /hibernate.cfg.xml
20:56:12 WARN [DTDEntityResolver ] recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
20:56:12 INFO [Configuration ] Configured SessionFactory: null
20:56:13 INFO [AnnotationBinder ] Binding entity from annotated class: br.ucb.pojo.Embarcacao
20:56:13 INFO [EntityBinder ] Bind entity br.ucb.pojo.Embarcacao on table embarcacao
20:56:13 INFO [AnnotationBinder ] Binding entity from annotated class: br.ucb.pojo.JetSki
20:56:13 INFO [EntityBinder ] Bind entity br.ucb.pojo.JetSki on table jetski
20:56:13 INFO [AnnotationBinder ] Binding entity from annotated class: br.ucb.pojo.Lancha
20:56:13 INFO [EntityBinder ] Bind entity br.ucb.pojo.Lancha on table lancha
20:56:13 INFO [AnnotationBinder ] Binding entity from annotated class: br.ucb.pojo.Proprietario
20:56:13 INFO [EntityBinder ] Bind entity br.ucb.pojo.Proprietario on table proprietario
20:56:13 INFO [CollectionBinder ] Mapping collection: br.ucb.pojo.Proprietario.embarcacoes -> embarcacao
20:56:13 INFO [Configuration ] Hibernate Validator not found: ignoring
20:56:13 INFO [HibernateSearchEventListenerRegister] Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
Exception in thread "main" org.hibernate.MappingException: Repeated column in mapping for entity: br.ucb.pojo.Lancha column: idLancha (should be mapped with insert="false" update="false")
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:676)
at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:698)
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:720)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:474)
at org.hibernate.mapping.JoinedSubclass.validate(JoinedSubclass.java:62)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1362)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1865)
at br.ucb.hibernate.ProprietarioHibernate.<init>(ProprietarioHibernate.java:27)
at br.ucb.aplicacao.TesteEmbProp.inclusaoDeProprietario(TesteEmbProp.java:14)
at br.ucb.aplicacao.TesteEmbProp.main(TesteEmbProp.java:154)
Embarcacao POJO:
@SuppressWarnings("serial")
@Entity
@Table(name = "embarcacao")
@Inheritance(strategy=InheritanceType.JOINED)
//@DiscriminatorColumn(name="TIPO_EMBARCACAO", discriminatorType=DiscriminatorType.INTEGER)
public class Embarcacao implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idEmbarcacao", unique = true ,nullable = false)
private Integer idEmbarcacao;
@Column(name = "nomeEmbarcacao", nullable = false)
private String nomeEmbarcacao;
@Column(name = "inscricaoEmbarcacao", nullable = false)
private String inscricaoEmbarcacao;
JetSki POJO:
@SuppressWarnings("serial")
@Entity
@Table(name = "jetski")
@PrimaryKeyJoinColumn(name = "idJetski")
public class JetSki extends Embarcacao {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embarcacao_idEmbarcacao")
private Embarcacao embarcacao;
private Integer idJetski;
@Column(name = "jetComprimento", nullable = false)
private String jetComprimento;
@Column(name = "jetPotenciaMotor", nullable = false)
private String jetPotenciaMotor;
@Column(name = "jetAno", nullable = false)
private String jetAno;
Lacnha POJO:
@SuppressWarnings("serial")
@Entity
@Table(name = "lancha")
@PrimaryKeyJoinColumn(name = "idLancha")
public class Lancha extends Embarcacao {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "embarcacao_idEmbarcacao")
private Embarcacao embarcacao2;
private Integer idLancha;
@Column(name = "lanchaComprimento", nullable = false)
private String lanchaComprimento;
@Column(name = "lanchaPotenciaMotor", nullable = false)
private String lanchaPotenciaMotor;
@Column(name = "lanchaAno", nullable = false)
private String lanchaAno;
@Column(name = "lanchaQuantidadePessoas", nullable = false)
private String lanchaQuantidadePessoas;
@Column(name = "lanchaModelo", nullable = false)
private String lanchaModelo;
Oque esta errado? Ja pesquisei porem nao achei nada que resolvesse.