Hibernate...Duvida hora campo auto incremento ou sequence?

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

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

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;
	}
}

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

<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>

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 …