Pessoal, estou com um probleminha na criação de tabalas com o hibernate.
Tenho as seguinte classes:
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.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Entity
@Table(name="endereco", schema="anotacoes")
@NamedQueries({
@NamedQuery(name="Endereco.find",query="Select e From Endereco e order by e.rua"),
@NamedQuery(name="Endereco.findById",query="Select e From Endereco e Where e.id = :id order by e.rua")
})
public class Endereco {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id_endereco")
private Integer id;
private String rua;
private Integer numero;
private String cep;
private String bairro;
private String cidade;
private String pais;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="id_usuario",insertable=true,updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Usuario usuario;import javax.persistence.Column;
//getrs e setrs
}
import java.util.Collection;
import java.util.Date;
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.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Cascade;
@Entity
@Table(name="usuario", schema="anotacoes")
@NamedQueries({
@NamedQuery(name="Usuario.find",query="Select u From Usuario u order by u.nome"),
@NamedQuery(name="Usuario.findById",query="Select u From Usuario u Where u.id = :id order by u.nome")
})
public class Usuario {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_usuario")
private Integer id;
private String nome;
private String telefone;
private Integer idade;
@OneToMany(mappedBy="usuario", fetch=FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private Collection<Endereco> endereco;
@Temporal(value = TemporalType.DATE)
private Date dataNascimento;
//getrs e setrs
}
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.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
/**
* @author Anderson
*
*/
@Entity
@Table(name="login", schema="anotacoes")
@NamedQueries({
@NamedQuery(name="Login.find",query="Select l From Login l order by l.nomeLogin"),
@NamedQuery(name="Login.findById",query="Select l From Login l Where l.id = :id order by l.nomeLogin")
})
public class Login{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id_login")
private Integer id;
private String nomeLogin;
private Integer senha;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="id_usuario", insertable=true,updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Usuario usuario;
//getrs e setrs
}
A classe pra criar o banco:
public class Banco {
public static void main(String[] args) {
Configuration cfg = new AnnotationConfiguration();
cfg.configure();
SchemaExport se = new SchemaExport(cfg);
se.create(true, true);
}
}
O hibernate.cfg.xml:
[code]
com.mysql.jdbc.Driver
username
password
jdbc:mysql://localhost:3306/projetobase
org.hibernate.dialect.MySQLDialect
true
10
<property name="hbm2ddl.auto">create</property>
<mapping class="br.com.projetobase.modelo.Endereco" />
<mapping class="br.com.projetobase.modelo.Login" />
<mapping class="br.com.projetobase.modelo.Usuario" />
</session-factory>
[/code]
E por fim o arquivo log4j.properties:
log4j.defaultInitOverride = false
log4j.rootCategory=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
É gerado o seguinte erro:
[quote]
alter table anotacoes.endereco drop foreign key FK672D67C9637DF035
alter table anotacoes.login drop foreign key FK625EF69637DF035
drop table if exists anotacoes.endereco
drop table if exists anotacoes.login
drop table if exists anotacoes.usuario
create table anotacoes.endereco (id_endereco integer not null auto_increment, bairro varchar(255), cep varchar(255), cidade varchar(255), numero integer, pais varchar(255), rua varchar(255), id_usuario integer, primary key (id_endereco))
0 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table anotacoes.endereco (id_endereco integer not null auto_increment, bairro varchar(255), cep varchar(255), cidade varchar(255), numero integer, pais varchar(255), rua varchar(255), id_usuario integer, primary key (id_endereco))
0 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unknown database 'anotacoes’
create table anotacoes.login (id_login integer not null auto_increment, nomeLogin varchar(255), senha integer, id_usuario integer, primary key (id_login))
0 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table anotacoes.login (id_login integer not null auto_increment, nomeLogin varchar(255), senha integer, id_usuario integer, primary key (id_login))
0 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unknown database 'anotacoes’
create table anotacoes.usuario (id_usuario integer not null auto_increment, dataNascimento date, idade integer, nome varchar(255), telefone varchar(255), primary key (id_usuario))
0 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table anotacoes.usuario (id_usuario integer not null auto_increment, dataNascimento date, idade integer, nome varchar(255), telefone varchar(255), primary key (id_usuario))
0 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unknown database 'anotacoes’
alter table anotacoes.endereco add index FK672D67C9637DF035 (id_usuario), add constraint FK672D67C9637DF035 foreign key (id_usuario) references anotacoes.usuario (id_usuario)
15 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: alter table anotacoes.endereco add index FK672D67C9637DF035 (id_usuario), add constraint FK672D67C9637DF035 foreign key (id_usuario) references anotacoes.usuario (id_usuario)
15 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Table ‘anotacoes.endereco’ doesn’t exist
alter table anotacoes.login add index FK625EF69637DF035 (id_usuario), add constraint FK625EF69637DF035 foreign key (id_usuario) references anotacoes.usuario (id_usuario)
15 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: alter table anotacoes.login add index FK625EF69637DF035 (id_usuario), add constraint FK625EF69637DF035 foreign key (id_usuario) references anotacoes.usuario (id_usuario)
15 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Table ‘anotacoes.login’ doesn’t exist[/quote]
Agradeço a força de todos.
Grato!