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 '()='majun'' at line 1public List<Story> findByHero(String heroName) {
System.out.println(heroName);
// TODO Auto-generated method stub
    List<Story>  storyList=hibernateTemplate.find("from Story st where st.Hero.getName()='"+heroName+"'");
if(storyList!=null&&storyList.size()>0){
return storyList;
}
else{
return null;
}
}
 public String       showStory(){
     storyList=storyService.showStory(heroName);
     if(storyList.size()>0&&storyList!=null){
     return SUCCESS;
     }
     else{
     return ERROR;
     }
    }数据库问题坐等大神啊

解决方案 »

  1.   

    "from Story st where st.Hero.getName()='"+heroName+"'"
    HQL语句中有getName(),肯定有错
      

  2.   

    把("from Story st where st.Hero.getName()='"+heroName+"'");中的st.Hero.getName()改成st.hero.name='"+heroName+"'又出现了Unknown column 'story0_.hero_id' in 'field list' 
      

  3.   

    st.hero.name
    这里需要是数据库里表的列名
      

  4.   

    把实体类发上来@Entity
    @Table(name="story")
    public class Story {
    private Hero   hero;
    private String id;
    private String story;
    private int    status;
    private User   user;
    //省略getset}
    @Entity
    @Table(name = "hero")
    public class Hero {
        private String id;
    private String name;
    private int    status;
    private User   user;
    private String times;
    //省略getset}
    数据库就是这样的名字完全相同在Story表中hero存储的是String类型的hero的id有什么不对么