Hi, new to hibernate. I have a problem that when i am trying to run select query say
"from Foo where Foo.some_id=2"
(with hibernate template) then hibernate is also tries to insert the records in a table 'Foo2' that has a one-2-one association with the Foo table
Bean Foo
class Foo{
int id;
....
Foo2 foo2;
}
Foo.hbm.xml
...
<one-to-one name="foo2" class="Foo2" property-ref="foo"
constrained="false" cascade="save-update"></one-to-one>
...
Bean Foo2
Class Foo2{
...
private int foo;
...
}
Foo2.hbm.xml
...
<property name="foo" column="foo_id"/>
...
Usage
DetachedCriteria criteria = createDetachedCriteria();
criteria.add(Restrictions.eq("some_id", value));
return getHibernateTemplate().findByCriteria(criteria);
urgent help would be appreciated :) thx
public List<SnsUser> getAllSnsUsersByProperty(String prop, Object val){
String query = "from SnsUser su where su." + prop + " =:" + prop;
return executeQuery(query, new String[]{prop}, new Object[]{val});
}
public static void main(String[] args) { //WORKING
String query = "from SnsUser su where su.blessUserId=1";
Session session = Utility.getSessionFactory().openSession();
List l = new SnsUserDaoImpl().getQRes(query);
System.out.println(l);
session.close();
}
public List<E> executeQuery(String queryString, String []param, Object [] val){
//NOT WORKING
return getHibernateTemplate().findByNamedParam(queryString, param, val);
}
This is what i am getting...
Hibernate: select * from bless_aggregation.sns_user this_ left outer join bless_aggregation.sns_authenticator snsauthent2_ on this_.sns_uid=snsauthent2_.sns_uid
where this_.bless_uid=?
Hibernate: select * from bless_aggregation.bless_user blessuser0_ where blessuser0_.bless_uid=?
Hibernate: select * from bless_aggregation.sns_user snsuser0_ left outer join bless_aggregation.sns_authenticator snsauthent1_ on
snsuser0_.sns_uid=snsauthent1_.sns_uid where snsuser0_.bless_uid=?
Hibernate: insert into bless_aggregation.sns_authenticator (key, value, sns_uid) values (?, ?, ?)
1079 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 1064, SQLState: 42000
1079 [main] ERROR org.hibernate.util.JDBCExceptionReporter - 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 'key, value, sns_uid) values (null, null, 1)' at line 1