1

私はこれが初めてです。私を助けてください。

リスト用の私のコントローラーは次のようになります。 @RequestMapping(value="/possalesList.htm",method=RequestMethod.GET) public String PosSalesList(@ModelAttribute("possales")PSales sales,@RequestParam(value = "salesItemID", required = false)Integer salesItemID,ModelMap model) { List<POSSalesItem> posSalesItemList = posSalesDao.listSalesItem(); model.addAttribute("possalesList", posSalesItemList);
return "possalesList"; }

私のhibernateDaoimplは次のようになります。 @SuppressWarnings("unchecked") @Transactional(readOnly=true) public List<POSSalesItem> listSalesItem() { return (List<POSSalesItem>)getHibernateTemplate().find("select POSSales.posSalesId , POSSalesItem.itemName from POSSales inner join POSSalesItem on POSSales.posSalesId=POSSalesItem.posSalesId"); }

私の内部結合は次のようになります。 select POSSales.posSalesId , POSSalesItem.itemName from POSSales inner join POSSalesItem on POSSales.posSalesId=POSSalesItem.posSalesId

外部キーはmysqlで正常に作成されます。

私がしているのは、POSSalesテーブルのposSalesIdとPOSSalesItemの他の列をリストしていることです。その目的のために、この結合クエリを作成しましたが、エラーが表示されています。

列posSalesIdで内部結合を作成したいのですが、次のエラーが発生します。

org.springframework.orm.hibernate3.HibernateQueryException:予期しないトークン:行1、列111の近く[com.jewellery.entity.POSSalesからPOSSales.posSalesId、POSSalesItem.itemNameを選択します。POSSales.posSalesId=POSSalesItem.posSalesIdでPOSSalesItemを内部結合します]; ネストされた例外はorg.hibernate.hql.ast.QuerySyntaxExceptionです:予期しないトークン:行1、列111 [select POSSales.posSalesId、POSSalesItem.itemName from com.jewellery.entity.POSSales inner join POSSalesItem on POSSales.posSalesId=POSSalesItem。 posSalesId] org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660)org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)org.springframework.orm.hibernate3.Hiber HibernateTemplate。

4

1 に答える 1

0

HQL構文のinner join POSSalesItem on POSSales.posSalesId=POSSalesItem.posSalesId形式が正しくありません。

正しい構文は(select必要ありません)

from POSSales s inner join s.POSSalesItemList

マッピング(またはアノテーション)に実装する必要のある結合条件では、POSSalesItemListのメンバーがどのクラスであり、キー列(結合列)が何であるかを示します。これについては、休止状態のドキュメント、注釈との1対多の関連付けを調べてください。

于 2012-06-05T15:18:18.183 に答える