paribe
Novembro 25, 2008, 8:44am
#1
Folks,
pessoal uma duvida vou participar de um projeto inicialmente
vai ser o banco MySql mas deverá ser pra vários bancos.
Vamos utilizar Hibernate , mas pintou uma duvida no MYSQL
existe o incremento de campo e no Oracle existe sequence.
Como controlar essa situação qdo tem sequence e autoincremento ???
A idéia é gerar as tabelas a partir dos objetos java ???
Alguém já teve esse problema se puder me ajudar ou site ou manual ???
abs
ddduran
Novembro 25, 2008, 8:47am
#2
Se você gerar o banco a partir do seu mapemento de classe você não vai ter nenhum problema, já que o hibernate vai criar ou uma sequence automaticamente ou uma tabela auxiliar para gerar os IDs autogenerated
elugo
Novembro 25, 2008, 8:58am
#3
package scv.beans;
import static javax.persistence.GenerationType.SEQUENCE;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
@Entity
public class Produto {
@Id// estas 3 anotações são responsáveis por gerar auto incremento, eu tbm gero as tabelas através dos objetos!
@GeneratedValue(strategy=SEQUENCE, generator="autoinc")
@SequenceGenerator(name="autoinc",sequenceName="inc_prod", allocationSize=1)
private Integer idProduto;
private String nomeProduto;
private String unidade;
private double valorUnitarioProduto;
private Integer estoque;
private Integer idGrupo;
private double valorUltimaCompra;
private Date dataUltimaCompra;
public Date getDataUltimaCompra() {
return dataUltimaCompra;
}
public void setDataUltimaCompra(Date dataUltimaCompra) {
this.dataUltimaCompra = dataUltimaCompra;
}
public Integer getEstoque() {
return estoque;
}
public void setEstoque(Integer estoque) {
this.estoque = estoque;
}
public Integer getIdGrupo() {
return idGrupo;
}
public void setIdGrupo(Integer idGrupo) {
this.idGrupo = idGrupo;
}
public Integer getIdProduto() {
return idProduto;
}
public void setIdProduto(Integer idProduto) {
this.idProduto = idProduto;
}
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUnidade() {
return unidade;
}
public void setUnidade(String unidade) {
this.unidade = unidade;
}
public double getValorUltimaCompra() {
return valorUltimaCompra;
}
public void setValorUltimaCompra(double valorUltimaCompra) {
this.valorUltimaCompra = valorUltimaCompra;
}
public double getValorUnitarioProduto() {
return valorUnitarioProduto;
}
public void setValorUnitarioProduto(double valorUnitarioProduto) {
this.valorUnitarioProduto = valorUnitarioProduto;
}
@Override
public String toString() {
return idProduto + " - " + nomeProduto;
}
}
paribe
Novembro 25, 2008, 10:23am
#4
obrigado pelo retorno…
Mas uma coisa teria algum exemplo de como eu faço pra gerar atraves do Hibernate as tabelas no banco…
queria um exemplo…
abs
elugo
Novembro 25, 2008, 10:54am
#5
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="SCV">//NOME DA SUA PERSISTENCIA
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>scv.beans.Pessoa</class>
<class>scv.beans.Cliente</class>
<class>scv.beans.Fornecedor</class>
<class>scv.beans.Vendedor</class>
<class>scv.beans.Produto</class>
<class>scv.beans.EntradaProdutos</class>
<class>scv.beans.Grupo</class>
<class>scv.beans.Venda</class>
<class>scv.beans.ItemVenda</class>
- <properties>
<property name="hibernate.hbm2ddl.auto" value="create" /> //atravaés de atributo "value" vc determina que o banco vai criar suas entidades através dos objetos mapeados na tag<class>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect" />
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver" />
<property name="hibernate.connection.username" value="system" />
<property name="hibernate.connection.password" value="123456" />
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@127.0.0.1:1521" />
<property name="hibernate.max_fetch_depth" value="3" />
</properties>
</persistence-unit>
</persistence>
paribe
Novembro 25, 2008, 1:36pm
#6
obrigado pelo retorno…
esse texto anterior fica dentro do arquivo hibernate.cfg.xml
e quando vai executar para criar as tabelas …se puder me dar um exemplo agradeceria…
não entendi em que momento executa …