java - HIBERNATE: cant extract data from MySQL using hibernate -
sorry bothering you. i'm newbie hibernate , have silly problem. can't deal on own. every time i'm trying select data db, i'm getting syntax error, decided dummy table (but problem same before):
create table `test` ( `id` int(10) unsigned not null auto_increment, name` varchar(45) default null, primary key (`id`) ) engine=innodb default charset=utf32;
hibernate config file:
<?xml version="1.0" encoding="utf-8"?> <!doctype hibernate-configuration public "-//hibernate/hibernate configuration dtd 3.0//en" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> <property name="hibernate.connection.password">qayxsw</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/training</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.default_schema">training</property> <property name="hibernate.dialect">org.hibernate.dialect.mysqldialect</property> <property name="hibernate.default_schema">training</property> <mapping resource="test.hbm.xml"/> </session-factory> </hibernate-configuration>
test.hbm.xml:
<?xml version="1.0"?> <!doctype hibernate-mapping public "-//hibernate/hibernate mapping dtd 3.0//en" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- package="com.test" --> <class name="s.test" catalog="training" table="test"> <id name="id" column="id" type="java.lang.integer"> <generator class="native" /> </id> <property name="name" type="java.lang.string" column="name"/> </class> </hibernate-mapping>
test.java:
package s; import java.util.date; /*import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.table;*/ //@entity //@table(name = "user") public class test{ private integer id; private string name; public test(){ } public test(integer id, string name) { super(); this.id = id; this.name = name; } public integer getid() { return id; } public void setid(integer id) { this.id = id; } public string getname() { return name; } public void setname(string name) { this.name = name; } }
main.java:
import java.util.linkedlist; import java.util.list; import org.hibernate.query; import org.hibernate.session; import s.test; public class main { public session session; public static void main(string[] args) { main test = new main(); test.session = hibernateutil.getsessionfactory().opensession(); test.session.begintransaction(); //query query = test.session.createquery("from user nick = turdus"); query query = test.session.createquery("from test"); final list<test> pass = new linkedlist<test>(); query.list(); for(final object o : query.list()) { pass.add((test)o); } for(test password : pass){ system.out.println(password.getname()); } test.session.close(); } }
here error message:
mar 16, 2015 7:14:15 pm org.hibernate.annotations.common.reflection.java.javareflectionmanager <clinit> info: hcann000001: hibernate commons annotations {4.0.5.final} mar 16, 2015 7:14:15 pm org.hibernate.version logversion info: hhh000412: hibernate core {4.3.8.final} mar 16, 2015 7:14:15 pm org.hibernate.cfg.environment <clinit> info: hhh000206: hibernate.properties not found mar 16, 2015 7:14:15 pm org.hibernate.cfg.environment buildbytecodeprovider info: hhh000021: bytecode provider name : javassist mar 16, 2015 7:14:15 pm org.hibernate.cfg.configuration configure info: hhh000043: configuring resource: hibernate.cfg.xml mar 16, 2015 7:14:15 pm org.hibernate.cfg.configuration getconfigurationinputstream info: hhh000040: configuration resource: hibernate.cfg.xml mar 16, 2015 7:14:15 pm org.hibernate.cfg.configuration addresource info: hhh000221: reading mappings resource: test.hbm.xml mar 16, 2015 7:14:15 pm org.hibernate.cfg.configuration doconfigure info: hhh000041: configured sessionfactory: null mar 16, 2015 7:14:15 pm org.hibernate.engine.jdbc.connections.internal.drivermanagerconnectionproviderimpl configure warn: hhh000402: using hibernate built-in connection pool (not production use!) mar 16, 2015 7:14:15 pm org.hibernate.engine.jdbc.connections.internal.drivermanagerconnectionproviderimpl buildcreator info: hhh000401: using driver [com.mysql.jdbc.driver] @ url [jdbc:mysql://localhost:3306/training] mar 16, 2015 7:14:15 pm org.hibernate.engine.jdbc.connections.internal.drivermanagerconnectionproviderimpl buildcreator info: hhh000046: connection properties: {user=root, password=****} mar 16, 2015 7:14:15 pm org.hibernate.engine.jdbc.connections.internal.drivermanagerconnectionproviderimpl buildcreator info: hhh000006: autocommit mode: false mar 16, 2015 7:14:15 pm org.hibernate.engine.jdbc.connections.internal.drivermanagerconnectionproviderimpl configure info: hhh000115: hibernate connection pool size: 20 (min=1) mar 16, 2015 7:14:15 pm org.hibernate.dialect.dialect <init> info: hhh000400: using dialect: org.hibernate.dialect.mysqldialect mar 16, 2015 7:14:15 pm org.hibernate.engine.transaction.internal.transactionfactoryinitiator initiateservice info: hhh000399: using default transaction strategy (direct jdbc transactions) mar 16, 2015 7:14:15 pm org.hibernate.hql.internal.ast.astquerytranslatorfactory <init> info: hhh000397: using astquerytranslatorfactory mar 16, 2015 7:14:16 pm org.hibernate.engine.jdbc.spi.sqlexceptionhelper logexceptions warn: sql error: 1064, sqlstate: 42000 mar 16, 2015 7:14:16 pm org.hibernate.engine.jdbc.spi.sqlexceptionhelper logexceptions error: have error in sql syntax; check manual corresponds mysql server version right syntax use near '.test test0_' @ line 1 exception in thread "main" org.hibernate.exception.sqlgrammarexception: not extract resultset @ org.hibernate.exception.internal.sqlexceptiontypedelegate.convert(sqlexceptiontypedelegate.java:80) @ org.hibernate.exception.internal.standardsqlexceptionconverter.convert(standardsqlexceptionconverter.java:49) @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:126) @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:112) @ org.hibernate.engine.jdbc.internal.resultsetreturnimpl.extract(resultsetreturnimpl.java:91) @ org.hibernate.loader.loader.getresultset(loader.java:2066) @ org.hibernate.loader.loader.executequerystatement(loader.java:1863) @ org.hibernate.loader.loader.executequerystatement(loader.java:1839) @ org.hibernate.loader.loader.doquery(loader.java:910) @ org.hibernate.loader.loader.doqueryandinitializenonlazycollections(loader.java:355) @ org.hibernate.loader.loader.dolist(loader.java:2554) @ org.hibernate.loader.loader.dolist(loader.java:2540) @ org.hibernate.loader.loader.listignorequerycache(loader.java:2370) @ org.hibernate.loader.loader.list(loader.java:2365) @ org.hibernate.loader.hql.queryloader.list(queryloader.java:497) @ org.hibernate.hql.internal.ast.querytranslatorimpl.list(querytranslatorimpl.java:387) @ org.hibernate.engine.query.spi.hqlqueryplan.performlist(hqlqueryplan.java:236) @ org.hibernate.internal.sessionimpl.list(sessionimpl.java:1264) @ org.hibernate.internal.queryimpl.list(queryimpl.java:103) @ test2.main(test2.java:25) caused by: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: have error in sql syntax; check manual corresponds mysql server version right syntax use near '.test test0_' @ line 1 @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(unknown source) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(unknown source) @ java.lang.reflect.constructor.newinstance(unknown source) @ com.mysql.jdbc.util.handlenewinstance(util.java:377) @ com.mysql.jdbc.util.getinstance(util.java:360) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:978) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3887) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3823) @ com.mysql.jdbc.mysqlio.sendcommand(mysqlio.java:2435) @ com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:2582) @ com.mysql.jdbc.connectionimpl.execsql(connectionimpl.java:2530) @ com.mysql.jdbc.preparedstatement.executeinternal(preparedstatement.java:1907) @ com.mysql.jdbc.preparedstatement.executequery(preparedstatement.java:2030) @ org.hibernate.engine.jdbc.internal.resultsetreturnimpl.extract(resultsetreturnimpl.java:82) ... 15 more
thank help.
ok found solution :). enabled
<property name="show_sql">true</property>
and realized hibernate uses sql query:
select test0_.id id1_0_, test0_.name name2_0_ training.training.test test0_
so removed catalog="training" attribute , works :)
Comments
Post a Comment