ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
689
689
EMPFEHLEN
-
Hallo Leute,
Ich möchte JPA mit Spring benutzen. Allerdings komme ich immer auf einen Fehler der mich echt wahnsinnig macht. Ist sicher nur eine kleinigkeit.
Die Fehlermeldung:
java.lang.IllegalArgumentException: Object: de.ckel.dbmodel.Person@52e80740 is not a known entity type.
Hier meine Person-Entity:
Hier die Spring Config:PHP-Code:package de.ckel.dbmodel;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
private String name;
private String adress;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAdd() {
return adress;
}
public void setAdd(String adress) {
this.adress = adress;
}
}
und finally hier die persitence.xml aus dem Verz. META-INF:PHP-Code:<?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"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
default-autowire="byName">
<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/jpa2"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" value="books" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
<property name="showSql" value="false"/>
<property name="generateDdl" value="false"/>
<property name="databasePlatform" value="org.eclipse.persistence.platform.database.MySQLPlatform"/>
</bean>
</property>
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver" />
</property>
</bean>
<context:annotation-config />
<context:component-scan base-package="de"/>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" />
</beans>
Ich hab gegooglet wie ein wahnsinniger und bin mit meinem Latein echt am Ende.PHP-Code:<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="books" transaction-type="RESOURCE_LOCAL">
<class>de.ckel.dbmodel.Person</class>
</persistence-unit>
</persistence>
Hier ein Testcase, der den Fehler bringt (beim em.persist(person)
Test:
und GetConPHP-Code:RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:springtest.xml"})
public class Test {
@Autowired
GetCon con;
@org.junit.Test
public void test(){
System.out.println(con);
con.setup();
}
...
PHP-Code:public class GetCon implements IOrderService{
EntityManager em;
@PersistenceContext
public void setEM(EntityManager em){
this.em = em;
}
public void setup(){
System.out.println("SETUP");
Person p = new Person();
p.setAdd("Akdwpqokdo99");
p.setName("Testname");
em.persist(p);
}
Vielen Dank!!Mfg
Chriﮎ ●̮̮̃•
-
Also, das Problem war offensichtlich der LoadTimeWeaver. Wenn ich den auf InstrumentationLoadTimeWeaver ändere, gehts. Dummerweise muss ich nun immer das javaagent vm-argument aufrufen. gibt es da keine andere möglichkeit, sodass ich die Konfig bei beidem, meinem JUnit-Test UND Tomcat nutzen kann?
Danke euch
ChristianMfg
Chriﮎ ●̮̮̃•
-
es gibt ne andere möglichkeit.
eclipselink.weaving
vielen dank für eure unglaubliche hilfe
Mfg
Chriﮎ ●̮̮̃•
-
19.10.10 19:45 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
musst du unbedingt Load-Time Weaving verwenden? Ich verwende einfach component-scanning mit einem angepassten PersistenceUnitPostProcessor den ich an LocalContainerEntityManagerFactoryBean->persistenceUnitPostProcessors konfiguriere um Entities über mehrere Projekte hinweg zu registrieren...
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
public class MergingPersistenceUnitPostProcessor implements PersistenceUnitPostProcessor { @Getter @Setter protected String basePackage = "de.tutorials.app"; @Override public void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); provider.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); Set<BeanDefinition> candidates = provider.findCandidateComponents(basePackage); for (BeanDefinition bd : candidates) { pui.getManagedClassNames().add(bd.getBeanClassName()); } } }
Damit startet die Anwendung immer noch schneller als mit Load-Time Weaving.
Siehe auch hier:
http://www.tutorials.de/java/356059-...ghlight=Lombok
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Interface als EJB Entity
Von -AbeAdapti- im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 6Letzter Beitrag: 05.08.08, 16:32 -
Entity Beans --> XML
Von Java4U im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 4Letzter Beitrag: 05.08.08, 14:31 -
The .NET Entity Objects Framework
Von Thomas Darimont im Forum .NET CaféAntworten: 0Letzter Beitrag: 19.02.06, 15:53 -
Entity
Von son gohan im Forum PHPAntworten: 8Letzter Beitrag: 07.02.06, 15:39 -
MIME::Entity;
Von webhostmedia im Forum Linux & UnixAntworten: 1Letzter Beitrag: 24.04.04, 17:23





Zitieren

Login





