Spring + JPA

2 respostas
R

Pesssoal,

to tentando mostrar um hello world em uma pagina web a partir de uma base MySQL.

Só que dá a seguinte excessão:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Unknown entity bean class: class br.com.rodrigomelo.melofogolin.domain.Imposto, please verify that this class has been marked with the @Entity annotation.; nested exception is java.lang.IllegalArgumentException: Unknown entity bean class: class br.com.rodrigomelo.melofogolin.domain.Imposto, please verify that this class has been marked with the @Entity annotation.
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
	com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)

root cause

org.springframework.dao.InvalidDataAccessApiUsageException: Unknown entity bean class: class br.com.rodrigomelo.melofogolin.domain.Imposto, please verify that this class has been marked with the @Entity annotation.; nested exception is java.lang.IllegalArgumentException: Unknown entity bean class: class br.com.rodrigomelo.melofogolin.domain.Imposto, please verify that this class has been marked with the @Entity annotation.
	org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:229)
	org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:114)
	org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212)
	org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor.java:152)
	org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:190)
	org.springframework.orm.jpa.JpaTemplate.find(JpaTemplate.java:221)
	br.com.rodrigomelo.melofogolin.dao.JpaImpostoDao.findById(JpaImpostoDao.java:12)
	br.com.rodrigomelo.melofogolin.controller.ImpostoController.handleRequestInternal(ImpostoController.java:26)
	org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
	com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)

root cause

java.lang.IllegalArgumentException: Unknown entity bean class: class br.com.rodrigomelo.melofogolin.domain.Imposto, please verify that this class has been marked with the @Entity annotation.
	oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.findInternal(EntityManagerImpl.java:291)
	oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.find(EntityManagerImpl.java:133)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:341)
	$Proxy7.find(Unknown Source)
	org.springframework.orm.jpa.JpaTemplate$1.doInJpa(JpaTemplate.java:223)
	org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:185)
	org.springframework.orm.jpa.JpaTemplate.find(JpaTemplate.java:221)
	br.com.rodrigomelo.melofogolin.dao.JpaImpostoDao.findById(JpaImpostoDao.java:12)
	br.com.rodrigomelo.melofogolin.controller.ImpostoController.handleRequestInternal(ImpostoController.java:26)
	org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
	com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)

Eu tenho uma classe jUnit que roda legal. O problema dá quando eu tento acessar o dao direto no controller.

A seguir meus fontes:

package br.com.rodrigomelo.melofogolin.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity(name = "impostos")
public class Imposto {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private long id;

	private String nome;

	private String acronimo;

	private float aliquota;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getAcronimo() {
		return acronimo;
	}

	public void setAcronimo(String acronimo) {
		this.acronimo = acronimo;
	}

	public float getAliquota() {
		return aliquota;
	}

	public void setAliquota(float aliquota) {
		this.aliquota = aliquota;
	}
}
[code]

[code]package br.com.rodrigomelo.melofogolin.dao;

import java.util.List;

import br.com.rodrigomelo.melofogolin.domain.Imposto;

public interface ImpostoDao {

    public Imposto findById(long id);

    public List<Imposto> findByAcronimo(String acronimo);

    public void save(Imposto imposto);

    public Imposto update(Imposto imposto);

    public void delete(Imposto imposto);

}
package br.com.rodrigomelo.melofogolin.dao;

import java.util.List;

import org.springframework.orm.jpa.support.JpaDaoSupport;

import br.com.rodrigomelo.melofogolin.domain.Imposto;

public class JpaImpostoDao extends JpaDaoSupport implements ImpostoDao {

    public Imposto findById(long id) {
        return getJpaTemplate().find(Imposto.class, id);
    }

    public List<Imposto> findByAcronimo(String acronimo) {
        return getJpaTemplate().find("select i from impostos i where i.acronimo = ?1", acronimo);
    }

    public void save(Imposto imposto) {
        getJpaTemplate().persist(imposto);
    }

    public Imposto update(Imposto imposto) {
        return getJpaTemplate().merge(imposto);
    }

    public void delete(Imposto imposto) {
        getJpaTemplate().remove(imposto);
    }

}
package br.com.rodrigomelo.melofogolin.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import br.com.rodrigomelo.melofogolin.dao.ImpostoDao;
import br.com.rodrigomelo.melofogolin.domain.Imposto;

public class ImpostoController extends AbstractController {

    private ImpostoDao impostoDao;

    public ImpostoDao getImpostoDao() {
        return impostoDao;
    }

    public void setImpostoDao(ImpostoDao impostoDao) {
        this.impostoDao = impostoDao;
    }

    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        Imposto imposto = impostoDao.findById(1);
        return new ModelAndView("impostos.jsp", "acronimo", imposto.getAcronimo());
    }

}
Página web:
<p class="ie-last-child"><c:out value="${acronimo}"/></p>
Configuracao: web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>melofogolin</display-name>
	<welcome-file-list>
		<welcome-file>home.jsp</welcome-file>
	</welcome-file-list>

	<!-- SiteMesh -->
	<filter>
		<filter-name>sitemesh</filter-name>
		<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>sitemesh</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- Spring -->
	<servlet>
		<servlet-name>melofogolin</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>melofogolin</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext*.xml</param-value>
	</context-param>
</web-app>
[app]-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-2.5.xsd">
	<bean id="jspViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/" />
		<property name="suffix" value=".jsp" />
	</bean>
	<bean id="HelloController"
		class="br.com.rodrigomelo.melofogolin.controller.HelloController"
		name="/hello.html" />
	<bean id="ImpostoController"
		class="br.com.rodrigomelo.melofogolin.controller.ImpostoController"
		name="/impostos.html">
		<property name="impostoDao" ref="impostoDao" />
	</bean>
</beans>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-2.5.xsd">
	<bean id="impostoDao" class="br.com.rodrigomelo.melofogolin.dao.JpaImpostoDao">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>
	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
		<property name="dataSource" ref="dataSource" />
	</bean>
	<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter">
				<property name="showSql" value="true" />
				<property name="generateDdl" value="false" />
				<property name="databasePlatform"
					value="oracle.toplink.essentials.platform.database.MySQL4Platform" />
			</bean>
		</property>
		<property name="loadTimeWeaver">
			<bean
				class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver" />
		</property>
	</bean>
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/melofogolin" />
		<property name="username" value="root" />
		<property name="password" value="" />
	</bean>
</beans>
classpath:br/com/rodrigomelo/melofogolin/META-INF/persistence.xml (Eu queria colocar ele na pasta resources, mas nao funciona)
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	version="1.0">
	<persistence-unit name="MeloFogolin" transaction-type="RESOURCE_LOCAL" />
</persistence>
E por fim, o meu pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>br.com.rodrigomelo.melofogolin</groupId>
	<artifactId>melofogolin</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<!--
			<dependency> <groupId>org.acegisecurity</groupId>
			<artifactId>acegi-security</artifactId> <version>1.0.7</version>
			</dependency>
		-->
		<!--
			<dependency> <groupId>javax.faces</groupId>
			<artifactId>jsf-api</artifactId> <version>1.2_02</version>
			</dependency> <dependency> <groupId>javax.faces</groupId>
			<artifactId>jsf-impl</artifactId> <version>1.2-b19</version>
			</dependency>
		-->
		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>persistence-api</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.1.2</version>
		</dependency>
		<!--
			<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId>
			<version>1.2.9</version> </dependency>
		-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
		</dependency>
		<dependency>
			<groupId>opensymphony</groupId>
			<artifactId>sitemesh</artifactId>
			<version>2.3</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jpa</artifactId>
			<version>2.0.8</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-mock</artifactId>
			<version>2.0.8</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>2.5.6</version>
		</dependency>
		<dependency>
			<groupId>taglibs</groupId>
			<artifactId>standard</artifactId>
			<version>1.1.2</version>
		</dependency>
	</dependencies>
</project>

Alguem sabe o que tah acontecendo ?

Obrigado!!

2 Respostas

V

Unknown entity bean class: class br.com.rodrigomelo.melofogolin.domain.Imposto, please verify that this class has been marked with the @Entity annotation.; nested exception is java.lang.IllegalArgumentException: Unknown entity
bean class:#
@Entity(name = “impostos”)

public class Imposto {

return getJpaTemplate().find(“select i from impostos i where i.acronimo = ?1”, acronimo);

seguinte eu nao sei se estou certo mas eu acho que é isso:
na consulta deve ser:
return getJpaTemplate().find(“select i from Imposto i where i.acronimo = ?1”, acronimo);
pq voce deve usar o nome da classe. Quer dizer se este metodo find for HQL.

espero que ajude flwssss :wink: :wink: :wink:

R

Fiz um teste aqui com o que vc sugeriu:

org.springframework.dao.InvalidDataAccessApiUsageException: An exception occured while creating a query in EntityManager; nested exception is java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
	at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:229)
	at org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:114)
	at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212)
	at org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor.java:152)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:190)
	at org.springframework.orm.jpa.JpaTemplate.executeFind(JpaTemplate.java:152)
	at org.springframework.orm.jpa.JpaTemplate.find(JpaTemplate.java:299)
	at br.com.rodrigomelo.melofogolin.dao.JpaImpostoDao.findByAcronimo(JpaImpostoDao.java:23)
	at br.com.rodrigomelo.melofogolin.dao.JpaImpostoDaoTests.testFindByAcronimoWhereImpostoExists(JpaImpostoDaoTests.java:54)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
	at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.access$001(AbstractAnnotationAwareTransactionalTests.java:47)
	at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests$1.run(AbstractAnnotationAwareTransactionalTests.java:113)
	at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runTest(AbstractAnnotationAwareTransactionalTests.java:176)
	at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runTestTimed(AbstractAnnotationAwareTransactionalTests.java:150)
	at org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runBare(AbstractAnnotationAwareTransactionalTests.java:109)
	at org.springframework.test.jpa.AbstractJpaTests.runBare(AbstractJpaTests.java:174)
	at org.springframework.test.jpa.AbstractJpaTests.runBare(AbstractJpaTests.java:254)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:194)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.orm.jpa.JpaTemplate$CloseSuppressingInvocationHandler.invoke(JpaTemplate.java:394)
	at $Proxy7.createQuery(Unknown Source)
	at org.springframework.orm.jpa.JpaTemplate$9.doInJpa(JpaTemplate.java:301)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:185)
	... 30 more
Caused by: Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [select i from Impostos i where i.acronimo = ?1]. Unknown abstract schema type [Impostos].
	at oracle.toplink.essentials.exceptions.EJBQLException.unknownAbstractSchemaType(EJBQLException.java:479)
	at oracle.toplink.essentials.internal.parsing.ParseTreeContext.classForSchemaName(ParseTreeContext.java:148)
	at oracle.toplink.essentials.internal.parsing.SelectNode.getClassOfFirstVariable(SelectNode.java:351)
	at oracle.toplink.essentials.internal.parsing.SelectNode.getReferenceClass(SelectNode.java:339)
	at oracle.toplink.essentials.internal.parsing.ParseTree.getReferenceClass(ParseTree.java:452)
	at oracle.toplink.essentials.internal.parsing.ParseTree.adjustReferenceClassForQuery(ParseTree.java:88)
	at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateReadQueryInternal(EJBQLParseTree.java:112)
	at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateQuery(EJBQLParseTree.java:93)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:204)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:174)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:138)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:99)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:84)
	at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.<init>(EJBQueryImpl.java:71)
	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:189)
	... 38 more

:(

Acho que lá é o nome da tabela mesmo.

Mas eu consegui resolver o problema já. :)

No applicationContext fiz a seguinte alteracao:

<property name="loadTimeWeaver">
			<bean
				class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
		</property>

De:
org.springframework.instrument.classloading.SimpleLoadTimeWeaver

Para:
org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver

E acrescentei o seguinte parametro ao subir o tomcat:
-javaagent:caminho/para/o/spring-agent.jar

Encontrei isso na referencia do Spring, mas nao encontro o link agora.

Mas valeu aí Vanderbill!

Criado 19 de novembro de 2008
Ultima resposta 21 de nov. de 2008
Respostas 2
Participantes 2