@Entity
@Table(name = "PRECO_CONTRATO")
public class PrecoContrato implements java.io.Serializable {
private PrecoContratoId id;
private TipoServico TipoServico;
private BigDecimal vlUnidadeServico;
public PrecoContrato() {
}
public PrecoContrato(PrecoContratoId id, BigDecimal vlUnidadeServico,
TipoServico TipoServico) {
this.id = id;
this.vlUnidadeServico = vlUnidadeServico;
this.TipoServico = TipoServico;
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "sqAquisicao", column = @Column(name = "SQ_AQUISICAO", nullable = false, precision = 10, scale = 0)),
@AttributeOverride(name = "cdTipoServico", column = @Column(name = "CD_TIPO_SERVICO", nullable = false, precision = 3, scale = 0)) })
@NotNull
public PrecoContratoId getId() {
return this.id;
}
public void setId(PrecoContratoId id) {
this.id = id;
}
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "CD_TIPO_SERVICO", insertable = false, nullable = false, updatable = false)
@NotNull
public TipoServico getTipoServico() {
return this.tipoServico;
}
public void setTipoServico(TipoServico tipoServico) {
this.tipoServico = tipoServico;
}
@Column(name = "VL_UNIDADE_SERVICO", nullable = false, precision = 8)
@NotNull
public BigDecimal getVlUnidadeServico() {
return this.vlUnidadeServico;
}
public void setVlUnidadeServico(BigDecimal vlUnidadeServico) {
this.vlUnidadeServico = vlUnidadeServico;
}
}
@Entity
@Table(name = "TIPO_SERVICO")
public class TipoServico implements java.io.Serializable {
private short cdTipoServico;
private String tpPeriodicidade;
private String dsTipoServico;
public TipoServico() {
}
public TipoServico(short cdTipoServico, String tpPeriodicidade,
String dsTipoServico) {
this.cdTipoServico = cdTipoServico;
this.tpPeriodicidade = tpPeriodicidade;
this.dsTipoServico = dsTipoServico;
}
@Id
@Column(name = "CD_TIPO_SERVICO", unique = true, nullable = false, precision = 3, scale = 0)
public short getCdTipoServico() {
return this.cdTipoServico;
}
public void setCdTipoServico(short cdTipoServico) {
this.cdTipoServico = cdTipoServico;
}
@Column(name = "TP_PERIODICIDADE", nullable = false, length = 1)
@NotNull
@Length(max = 1)
public String getTpPeriodicidade() {
return this.tpPeriodicidade;
}
public void setTpPeriodicidade(String tpPeriodicidade) {
this.tpPeriodicidade = tpPeriodicidade;
}
@Column(name = "DS_TIPO_SERVICO", nullable = false, length = 50)
@NotNull
@Length(max = 50)
public String getDsTipoServico() {
return this.dsTipoServico;
}
public void setDsTipoServico(String dsTipoServico) {
this.dsTipoServico = dsTipoServico;
}
}
DEPLOYMENTS IN ERROR:
Deployment "persistence.unit:unitName=xxxxx.ear/xxxxx.jar#xx is in error due to the following reason(s): org.hibernate.MappingException: broken column mapping for: TipoServico.id of: org.domain.entity.PrecoContrato
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Meu problema é fazer o mapeamento do CD_TIPO_SERVICO. Acredito eu que seja algo simples, porque no mesmo projeto tenho um mapeamento muito parecido. Uma entidade com uma composite pk e uma outra com uma pk única.
Procurei e não achei uma solução.
Desde já agradeço a ajuda.
Usando Seam Framework 2.2.0.GA, Eclipse Helios, JBoss 5.1.0GA.