Erro de persistencia usando netbeans com toplink e banco firebird 2.1

5 respostas
J

Atraves de uma video aula estou tentando usar o netbeans com JPA e banco Firebird mas acontece o seguinte erro abaixo. Já fiz várias pesquisas no forum e não encontrei nada que me desse a solução. Alguém poderia me ajudar? Estou usando uma tabela simples de cadastro de cidades com autoincremento. segue o erro:

run:

[TopLink Info]: 2010.03.02 11:09:46.707ServerSession(7314318)TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))

[TopLink Info]: 2010.03.02 11:09:53.937Not able to detect platform for vendor name [Firebird 2.1.WI-V2.1.3.18185 Firebird 2.1/tcp (PENTIUM)/P10]. Defaulting to [oracle.toplink.essentials.platform.database.DatabasePlatform]. The database dialect used may not match with the database you are using. Please explicitly provide a platform using property <a href="http://toplink.platform.class.name">toplink.platform.class.name</a>.

Exception in thread AWT-EventQueue-0 javax.persistence.PersistenceException: Exception [TOPLINK-7144] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException

Exception Description: SEQ_GEN_SEQUENCE: platform DatabasePlatform doesnt support NativeSequence.

at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:239)

at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)

at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)

at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)

at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)

at telemark.View.UsuariosView.initComponents(UsuariosView.java:45)

at telemark.View.UsuariosView.(UsuariosView.java:29)

at telemark.View.UsuariosView$1.run(UsuariosView.java:251)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Caused by: Exception [TOPLINK-7144] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException

Exception Description: SEQ_GEN_SEQUENCE: platform DatabasePlatform doesnt support NativeSequence.

at oracle.toplink.essentials.exceptions.ValidationException.platformDoesNotSupportSequence(ValidationException.java:1817)

at oracle.toplink.essentials.sequencing.NativeSequence.onConnect(NativeSequence.java:105)

at oracle.toplink.essentials.sequencing.Sequence.onConnect(Sequence.java:295)

at oracle.toplink.essentials.internal.sequencing.SequencingManager.onConnectAllSequences(SequencingManager.java:704)

at oracle.toplink.essentials.internal.sequencing.SequencingManager.onConnect(SequencingManager.java:586)

at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.initializeSequencing(DatabaseSessionImpl.java:154)

at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:416)

at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:405)

at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:722)

at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:604)

at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)

at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)

 15 more

CONSTRUÍDO COM SUCESSO (tempo total: 20 segundos)

5 Respostas

bruno.leite

Seria bom vc postar o código, mas pelo erro que vc postou “Exception Description: SEQ_GEN_SEQUENCE: platform DatabasePlatform doesn’t support NativeSequence.” parece que vc mapeou uma sequence e o seu SGBD não dá suporte a sequence. Nunca mexi com firebird, então dá uma olhada nisso.

[]'s

J

Como escrevi fiz um modelo de acordo com uma video aula usando MYSQL com NETBEANS com TOPLINK. O banco é simples um cadastro de cidades com um autoincremento usando triggers, da mesma forma que é no MYSQL foi feito no FIREBIRD. Até aí é simples pois nos dois bancos é igual. No NETBEANS 6.8 é feito de forma automatica usando formulario de amostra/detalhe. O proprio NETBEANS tem opção para conectar à vários bancos, então adicionei o JAYBIRD 2.1, driver necessário para conexão, mesmo que não usasse JPA. A conexão é perfeita. O NETBEANS cria os frame automaticamente, a única mudança é que o auhtor das videos aulas muda no BEAN a linha de autoincremento, conforme o modelo abaixo. Espero ter sido claro, porque ao executar dá o erro mencionado acima. Para esclarecer na video aula com o MYSQL funciona.
Segue o Bean o XML da persistencia.

@Entity

@Table(name = BD, catalog = “”, schema = “”)

@NamedQueries({

@NamedQuery(name = Bd.findAll, query = SELECT b FROM Bd b),

@NamedQuery(name = Bd.findByCodigo, query = SELECT b FROM Bd b WHERE b.codigo = :codigo),

@NamedQuery(name = Bd.findByNome, query = SELECT b FROM Bd b WHERE b.nome = :nome)})

public class Bd implements Serializable {

@Transient

private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “CODIGO”)

private Integer codigo;

@Column(name = “NOME”)

private String nome;
<?xml version="1.0" encoding="UTF-8"?> oracle.toplink.essentials.PersistenceProvider jpa.Bd
J

Será que alguem já usou java com JPA com banco Firebird, usando formulario de mestre detalhe. Ainda não recebi nenhuma resposta conclusiva sobre o erro que acontece que descrevi neste tópico. O banco conecta normalmente mas acontece erros de persistencia. Será que o Firebird 2.1 é incompativel com java 1.6 usando toplink??? :cry: :cry:

T

Tenta colocar assim:
@GeneratedValue(generator = “CODIGO”,strategy=GenerationType.IDENTITY)

A

O erro que acontece quanto eu crio o meu JPA é o seguinte:
Estou com um projeto EJB no NetBeans 6.8, estou cirando as tabelas no derby.
Com o banco de dados terminado vou fazer a aplicação. New project >>JAVA EE >> Modulo EJB.
Crio o projeto com JAVA EE 6 e GLASSFISH v3.
Após isso vou criar uma " Classe de entidade do Banco de Dados" para exportar as tabelas do banco. Em Fonte de Dados coloco, por exemplo: “jdbc/cadprod”. Feito isto era para aparecer as tabelas do meu banco de dados, mas não aparecem, só aparece uma mensagem de aviso -> “Selecionar ao menos uma tabela” :frowning:

Não quero gerar as anottations na unha, por favor se alguém já passou pelo mesmo, peço ajuda!

até.

Criado 5 de março de 2010
Ultima resposta 3 de nov. de 2010
Respostas 5
Participantes 4