select new map(person.personid as personid,
person.name as name,
person.placename as placename,
person.picurl as picurl, 
person.telephone as telephone,person.mobilephone as mobilephone,
person.email as email, 
person.sex as sex,user.linkmanid as linkmanid,
cardtype.cardtypename as cardtypename, 
country.countryname as countryname,
province.provincename as provincename,
company.companyname as companyname) from org.caexpo.hibernate.model.TPerson as person  
inner join person.user as user 
inner join person.sex as sex 
inner join user.company as company 
inner join person.country as country 
left join person.province as province 
left join province.parentid as parentid 
left join person.expo as personexpo 
left join person.expoPersonSet as expoPerson 
left join expoPerson.cardtype as cardtype 
left join person.position as position 
left join person.teamIdentity as teamIdentity 
left join expoPerson.expo as expo 
where person.shamdeletetime is null and person.deletetime is null and user.userid = ? and (personexpo.expoid is null or personexpo.expoid <>? )];
hql

解决方案 »

  1.   

    personexpo.expoid <>? )];  怎么会有个“]”呢?
      

  2.   

    这是我见过的最长的sql语句,但不是最复杂的
      

  3.   

     Error, message = org.springframework.orm.hibernate3.HibernateQueryException: Incorrect query syntax 
      

  4.   

    String hql = "select new map" +
    "(person.personid as personid,person.name as name," +
    "person.placename as placename,person.picurl as picurl," +
    "person.telephone as telephone,person.mobilephone as mobilephone," +
    "person.email as email,person.sex as sex,user.linkmanid as linkmanid," +
    "cardtype.cardtypename as cardtypename,country.countryname as countryname," +
    "province.provincename as provincename,company.companyname as companyname) " +
    "from org.caexpo.hibernate.model.TPerson as person " +
    "inner join person.user as user " +
    "inner join person.sex as sex " +
    "inner join user.company as company " +
    "inner join person.country as country " +
    "left join person.province as province " +
    "left join province.parentid as parentid " +
    "left join person.expo as personexpo " +
    "left join person.expoPersonSet as expoPerson " +
    "left join expoPerson.cardtype as cardtype " +
    "left join person.position as position " +
    "left join person.teamIdentity as teamIdentity " +
    "left join expoPerson.expo as expo " +
    "where person.shamdeletetime is null and person.deletetime is null and user.userid = ? " +
    "and (personexpo.expoid is null or personexpo.expoid <>? )";我整理了下你的HQL代码
      

  5.   

    "inner join person.user as user " +
    "inner join person.sex as sex " +
    "inner join user.company as company " +
    "inner join person.country as country " +person.user as user  user到底是外键表 还是person表中的属性??
    其它的也是
      

  6.   

    应该即是外键表也是person中的属性...