Estou com um erro quando vou gerar o meu database atravéz do Hibernate.
Apos adicionar uma “lista de musicas” na classe cd.
[quote]
01:03:55,703 DEBUG Configuration:170 - processing foreign key constraints
Exception in thread “main” org.hibernate.MappingException: Could not determine type for: java.util.Collection, at table: tb_cd, for columns: [org.hibernate.mapping.Column(listMusica)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292)
at org.hibernate.mapping.Column.getSqlTypeCode(Column.java:161)
at org.hibernate.mapping.Column.getSqlType(Column.java:205)
at org.hibernate.mapping.Table.sqlCreateString(Table.java:420)
at org.hibernate.cfg.Configuration.generateSchemaCreationScript(Configuration.java:881)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:129)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:91)
at persistence.GeraTabelas.main(GeraTabelas.java:29)[/quote]
package entidades;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@SequenceGenerator(name = "musica_sequence", sequenceName = "musica_sequence", allocationSize = 1)
@Table(name = "tb_musica", schema = "public")
public class Musica {
@Id
@Column (name = "cod_musica", nullable = false)
private Integer cod_musica;
@Column(name = "desc_musica", nullable = true, length = 50)
private String desc_musica;
@Column(name = "letra_musica", nullable = true, length = 1000)
private String letra_musica;
// Muitos bairros tem uma cidade
@ManyToOne( targetEntity = Cd.class, fetch=FetchType.EAGER )
@JoinColumn( name="cod_cd" )
private Cd cd;
public Musica() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "musica_sequence")
@Column(name = "cod_musica")
public Integer getCod_musica() {
return cod_musica;
}
public void setCod_musica(Integer cod_musica) {
this.cod_musica = cod_musica;
}
public String getDesc_musica() {
return desc_musica;
}
public void setDesc_musica(String desc_musica) {
this.desc_musica = desc_musica;
}
public String getLetra_musica() {
return letra_musica;
}
public void setLetra_musica(String letra_musica) {
this.letra_musica = letra_musica;
}
public Cd getCd() {
return cd;
}
public void setCd(Cd cd) {
this.cd = cd;
}
}
[/code][code]/**
*
*/
package entidades;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Type;
@Entity
@SequenceGenerator(name = "cd_sequence", sequenceName = "cd_sequence", allocationSize = 1)
@Table(name = "tb_cd",schema="public")
public class Cd implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column (name = "cod_cd", nullable = false)
@Type (type = "int")
private Integer cod_cd;
@Column(name = "desc_cd", nullable = true, length = 50)
private String desc_cd;
@Column(name = "preco_cd")
private Double preco_cd;
@OneToMany(targetEntity=Musica.class, mappedBy="cd", fetch=FetchType.LAZY)
private Collection<Musica> listMusica;
public Cd() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator="cd_sequence")
@Column(name = "cod_cd")
public Integer getCod_cd() {
return cod_cd;
}
public void setCod_cd(Integer cod_cd) {
this.cod_cd = cod_cd;
}
public String getDesc_cd() {
return desc_cd;
}
public void setDesc_cd(String desc_cd) {
this.desc_cd = desc_cd;
}
public Double getPreco_cd() {
return preco_cd;
}
public void setPreco_cd(Double preco_cd) {
this.preco_cd = preco_cd;
}
public Collection<Musica> getListMusica() {
return listMusica;
}
public void setListMusica(Collection<Musica> listMusica) {
this.listMusica = listMusica;
}
}