Firebird+TopLink

3 respostas
P

Olá

estou com o seguinte problema, eu li o artigo deste mês da javamagazine sobre a JPA e estou tentado implementar a JPA no meu sistema, o banco que estou usando é o Firebird, eu fiz mapeamento como diz no artigo e tal so que quando vou criar o manager
EntityManager manager = factory.createEntityManager();
ele da o seguinte erro
[TopLink Info]: 2006.10.24 02:03:52.640--ServerSession(2698418)--TopLink, version: Oracle TopLink Essentials - 2006.6 (Build 060608)
[TopLink Info]: 2006.10.24 02:03:52.703--Not able to detect platform for vendor name [Firebird]. 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 toplink.platform.class.name.
[TopLink Info]: 2006.10.24 02:03:52.906--ServerSession(2698418)--file:/C:/opt/eclipse/workspace/atendimento/bin-atendimento logout successful
Exception in thread "AWT-EventQueue-0" Local Exception Stack: 
Exception [TOPLINK-8028] (Oracle TopLink Essentials - 2006.6 (Build 060608)): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [SELECT CODTPCLI FROM TB_TIPOCLIENTE], unexpected end of query.
	at oracle.toplink.essentials.exceptions.EJBQLException.unexpectedEOF(EJBQLException.java:377)
	at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParserBase.handleANTLRException(EJBQLParserBase.java:243)
	at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParserBase.reportError(EJBQLParserBase.java:204)
	at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.rangeVariableDeclaration(EJBQLParser.java:1745)
	at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.identificationVariableDeclaration(EJBQLParser.java:1624)
	at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.fromClause(EJBQLParser.java:454)
	at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.selectStatement(EJBQLParser.java:179)
	at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:135)
	at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParserBase.parseEJBQLString(EJBQLParserBase.java:315)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:199)
	at oracle.toplink.essentials.queryframework.EJBQLPlaceHolderQuery.processEjbQLQuery(EJBQLPlaceHolderQuery.java:96)
	at oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2045)
	at oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2032)
	at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:679)
	at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:559)
	at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:180)
	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:232)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:84)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:127)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:121)
	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:76)
	at com.pregospan.atd.control.TipoCliControl.<init>(TipoCliControl.java:25)
	at com.pregospan.atd.view.TipoCliView.<init>(TipoCliView.java:21)
	at com.pregospan.atd.view.PrincipalVeiw.actionPerformed(PrincipalVeiw.java:155)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
pelo que eu entendi ( não sou muito bom com ingles ) o toplink não esta se entendendo direito com o Firebird, sera que alguem sabe como fazer os dos serem bons amigos hehe. aqui esta o persitence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
	<persistence-unit name="atendimento">
		<provider>
			oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
		</provider>

		<class>com.pregospan.atd.model.TipoCliente</class>
		
		<properties>
			<property name="toplink.logging.level" value="INFO" />
			<property name="toplink.jdbc.driver" value="org.firebirdsql.jdbc.FBDriver" />
			<property name="toplink.jdbc.url" value="jdbc:firebirdsql:localhost/3050:C:\opt\firebird\dados\atendimento.fdb" />
			<property name="toplink.jdbc.user" value="sysdba" />				
			<property name="toplink.jdbc.password" value="masterkey" />
		</properties>

	</persistence-unit>
</persistence>

3 Respostas

C

Olá pregospan,

Veja a mensagem do erro:

A sua consulta EJBQL não está completa, por isso ele deu o erro. Dê uma olhada nessa sua @NamedQuery que deu erro. Tente colocar assim:

  • Num sei porque eles mantiveram o nome “EJB” se isso não é mais EJB, mas tudo bem :stuck_out_tongue:

Até mais, :wink:

P

eu ja tentei isso mas não funcionou…

P

consegui executar a query ( ainda não sei direito o porque ), eu coloquei o plugin Dali pra poder facilitar o mapeamento, depois disso ta funcionando tudo beleza… ou quase tudo…

eu estou usando o firebird, alguem sabe como usar o Dali para o Firebird?

Criado 24 de outubro de 2006
Ultima resposta 26 de out. de 2006
Respostas 3
Participantes 2