Hibernate Basic:如何在有复合id时进行查询

时间:2009-07-07 16:22:45

标签: java hibernate

我有一个域对象说,SalesOrder有一个名为id的复合id,由salesOrder id和repid组成,它包含在另一个名为SalesOrderID的类中(可序列化并实现equals和hashcode)

我的问题是当我想查询SalesOrder时, session.createSQLQuery(“FROM SalesOrder where id =:soID”)

和soID使用salesorder id和repid填充。无论怎样,这都会失败。

任何人都可以帮助我吗?

感谢

2 个答案:

答案 0 :(得分:2)

很可能因为您尝试创建 SQL 查询而失败。您应该使用 HQL

 Query query = session.createQuery("from SalesOrder so where so.id=:id");
 query.setParameter("id", salesOrderID);
 query.list();

如果这是你问题中的拼写错误,而你确实在使用 createQuery()方法,那么请发布异常堆栈跟踪。

答案 1 :(得分:0)

我在数据库bean类中的映射不正确。抱歉所有的麻烦,吸取了我的教训,为浪费你的时间而道歉。