日期:2014-05-16  浏览次数:20719 次

select new Topic from ' Mysql 生成SQL语句错误
Caused by:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;


Hibernate:
    select
        topic0_.id as col_0_0_,
        topic0_.title as col_1_0_,
        topic0_.keyword as col_2_0_,
        topic0_.status as col_3_0_,
        topic0_.recommend as col_4_0_,
        topic0_.publishName as col_5_0_,
        topic0_.publish_date as col_6_0_,
        topic0_.channel_name as col_7_0_,
        topic0_.author as col_8_0_,
        . as col_9_0_
    from
        t_topic topic0_
    inner join
        t_attachment attachment1_
            on topic0_.id=attachment1_.topic_id
    where
        1=1
        and topic0_.status=1
        and topic0_.channel_id=142 limit ?




"select new Topic (t.id, t.title, t.keyword, t.status, t.recommend,t.publishName, t.publishDate, t.channel_name,t.author,t.attachments) ";


本来是使用constructor的方法来设置query。
但是遇到这个onetomany的时候,貌似不能这么做。

Topic里面的Set<Attachment>attachments被hibernate弄到mysql数据库中就变成了错误的sql语句。


只能去掉select new Topic, 直接写成 from Topic。

谁知道怎么解决这个问题请告诉我。