leonardoMachado 22 de dez. de 2008
posta o codigo da classe para poder dar uma olhada…
skalinichenko 23 de dez. de 2008
leonardoMachado:
posta o codigo da classe para poder dar uma olhada....
Logo abaixo, está o código da classe que me retorna as sessões:
import org.hibernate.Session ;
import org.hibernate.SessionFactory ;
import org.hibernate.cfg.AnnotationConfiguration ;
public class HibFact {
private static SessionFactory factory ;
private static Session session ;
private static AnnotationConfiguration cfg ;
private HibFact (){}
public static Session getSession ()
{
if ( factory != null ){
return factory . openSession ();
}
else {
cfg = new AnnotationConfiguration ();
cfg . addAnnotatedClass ( Produto . class );
factory = cfg . buildSessionFactory ();
session = factory . openSession ();
return session ;
}
}
}
E na minha classe DAO, utilizo Singleton:
import org.hibernate.Session ;
import org.hibernate.Transaction ;
import br.com.caelum.hibernate.HibernateFactory ;
import br.com.caelum.hibernate.Produto ;
public class ProdutoDAO {
private Session session ;
private static ProdutoDAO referencia ;
private Transaction transaction ;
//Seguindo Design Pattern Singleton
private ProdutoDAO () {
this . session = HibernateFactory . getSession ();
}
public static ProdutoDAO getInstance () {
if ( referencia == null ){
return new ProdutoDAO ();
}
return referencia ;
}
public void salva ( Produto p ) {
this . transaction = this . session . beginTransaction ();
this . session . save ( p );
this . transaction . commit ();
}
public void remove ( Produto p ) {
this . session . delete ( p );
}
public Produto procura ( int id ) {
return ( Produto ) this . session . load ( Produto . class , id );
}
public void atualiza ( Produto p ) {
this . session . update ( p );
}
}
Algo mais, é só falar...
Vlw!
leonardoMachado 23 de dez. de 2008
Estou usando para gerar sequencialmente da seguinte forma, e esta funcionando testa ae:
@Id
@SequenceGenerator(name = "seqCidade", sequenceName = "System.\"seqCidade\"", initialValue=1, allocationSize=0)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqCidade")
@Column(name="codigo")
private Integer cod;
skalinichenko 23 de dez. de 2008
Leonardo,
Fiz da mesma forma que vc passou e testei, alterando alguns nomes.
@Id
@SequenceGenerator(name="idCad",sequenceName="System.\"idCad\"",
initialValue=1,allocationSize=0)
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="idCad")
@Column(name="id")
private int id;
Mas gerou o seguinte erro na sintaxe:
4867 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 20000, SQLState: 42X01
4867 [main] ERROR org.hibernate.util.JDBCExceptionReporter - Syntax error: Encountered "System" at line 1, column 20.
Até mudei o nome da sequência, colocando um nome qualquer só para teste e o erro persiste.
Vlw!
leonardoMachado 23 de dez. de 2008
Onde está System altere e coloque o nome do shema que vc esta utilizando.
Qualquer dúvida poste ae.
Abraço
rollei 23 de dez. de 2008
@Id
@Basic(optional = false)
@SequenceGenerator(name = "AlgumaCoisa", sequenceName = "ESQUEMA.SEQUENCIA", initialValue=1, allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "AlgumaCoisa")
@Column(name = "NOMECOLUNA", nullable = false)
private Long nomeColuna;
minhas sequences sao bem parecidas com as do amigo.
leonardoMachado 23 de dez. de 2008
para maiores esclarecimentos entre neste site e veja a apostila de Hibernate com Anotations:
http://www.j2eebrasil.com.br/mostrar/97
Abraço
skalinichenko 24 de dez. de 2008
leonardoMachado:
para maiores esclarecimentos entre neste site e veja a apostila de Hibernate com Anotations:
http://www.j2eebrasil.com.br/mostrar/97
Abraço
Li a apostila e resolveu…
Fiz de outra forma, mas o importante é que o negócio funcionou!
Vlw!
leonardoMachado 24 de dez. de 2008
blz…
essa apostila sempre me salva tambem…heheheheh
qualquer duvida posta ae…
abraço