Ik heb een uitgebreid complex project terug gebracht naar een eenvoudig project met slects 1 module/controller en een database met slechts 1 tabel. Dit simpele project moet gaan dienen om nieuwe 'ideeen' in uit te proberen, maar het eenvoudige project geeft een stacktrace, iets wat het complexe project niet doet, dat werkt gewoon...terwijl de basis van de hibernate configuratie voor beide applicaties identiek is... wat gaat hier dus mis?
hibernate mapping is als volgt:
Op google en het Spring forum vind ik bij SQL Grammer blijkt de oorzaak altijd te liggen bij een fout in de SQL statement, maar die wordt hier gegenereerd door hibernate...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not insert: [app.admin.core.Person]; bad SQL grammar [insert into person (firstname, surname, email) values (?, ?, ?)]; nested exception is java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'person (firstname, surname, email) values ('Chris', 'test', 'test@email')' at line 1
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:225)
org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:411)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:371)
org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:614)
nl.obsis.app.admin.db.AdminDaoHibernate.registerKill(AdminDaoHibernate.java:14)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:288)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)
$Proxy1.registerPerson(Unknown Source)
app.admin.core.AdminManager.registerPerson(AdminManager.java:20)
app.admin.AdminController.database(AdminController.java:25)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:433)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:371)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:796)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:727)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) |
hibernate mapping is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
| <hibernate-mapping auto-import="true" default-lazy="false">
<class name="app.admin.core.Person" table="Person">
<id name="id" column="id" unsaved-value="-1" type="java.lang.Integer">
<generator class="identity"/>
</id>
<property name="firstname" column="firstname" type="java.lang.String"/>
<property name="surname" column="surname" type="java.lang.String"/>
<property name="email" column="email" type="java.lang.String"/>
</class>
</hibernate-mapping> |
Op google en het Spring forum vind ik bij SQL Grammer blijkt de oorzaak altijd te liggen bij een fout in de SQL statement, maar die wordt hier gegenereerd door hibernate...