Folks,
duvida estou usando a versão 5 do MYSQL e gerei a tabela através
das classes com annotations …
Minha duvida não cria FK´s na tabela ???
se alguem puder me ajudar …
abs
---
<persistence-unit name="exemploJPA" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class>br.com.exemplojpa.modelo.Usuario</class>
<class>br.com.exemplojpa.modelo.Universidade</class>
<class>br.com.exemplojpa.modelo.Centro</class>
<properties>
<property name="toplink.logging.level" value="INFO"/>
<property name="toplink.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/exemplojpa"/>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="toplink.jdbc.user" value="root"/>
<property name="toplink.jdbc.password" value="root"/>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
---
mport 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.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Entity @Table
public class Centro {
@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name="id_centro")
private int id;
private String nome;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id_universidade",
insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Universidade universidade;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Universidade getUniversidade() {
return universidade;
}
public void setUniversidade(Universidade universidade) {
this.universidade = universidade;
}
}
---
@Entity @Table(name = "Universidade")
public class Universidade {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name="id_universidade")
private int id;
private String nome;
@OneToMany(mappedBy="universidade",fetch=FetchType.LAZY)
private Collection<Centro> centros;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Collection<Centro> getCentros() {
return centros;
}
public void setCentros(Collection<Centro> centros) {
this.centros = centros;
}
}
---
---
CREATE TABLE `universidade` (
`id_universidade` int(11) NOT NULL auto_increment,
`NOME` varchar(255) default NULL,
PRIMARY KEY (`id_universidade`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
DROP TABLE IF EXISTS `centro`;
CREATE TABLE `centro` (
`id_centro` int(11) NOT NULL auto_increment,
`NOME` varchar(255) default NULL,
`id_universidade` int(11) default NULL,
PRIMARY KEY (`id_centro`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;