net.sf.json.JSONException: There is a cycle in the hierarchy!

这里使用的是hibernate,出现这个错的原因是hibernate的延迟加载导致的,使用json-lib插件就出现这个问题。

如果使用的是jsonfast的话可以将所有的查出来,不过我不喜欢,我还是喜欢我的手拼。

 

json-lib的sql语句:

Hibernate: select this_.id as id9_0_, this_.pt_id as pt2_9_0_, this_.dp_id as dp3_9_0_, this_.salarystandard_id as salaryst4_9_0_, this_.post_id as post5_9_0_, this_.statu as statu9_0_, this_.checkstatu as checkstatu9_0_, this_.name as name9_0_, this_.sex as sex9_0_, this_.email as email9_0_, this_.phone as phone9_0_, this_.address as address9_0_, this_.idcard as idcard9_0_, this_.native_place as native14_9_0_, this_.politics_status as politics15_9_0_, this_.sbcardid as sbcardid9_0_, this_.school as school9_0_, this_.credentials as credent18_9_0_, this_.major as major9_0_, this_.bankname as bankname9_0_, this_.bankaccount as bankacc21_9_0_, this_.registrant as registrant9_0_, this_.registerdate as registe23_9_0_, this_.vitae as vitae9_0_, this_.family_information as family25_9_0_, this_.remark as remark9_0_, this_.resume as resume9_0_, this_.photo as photo9_0_ from work.employee this_
Hibernate: select this_.id as id9_0_, this_.pt_id as pt2_9_0_, this_.dp_id as dp3_9_0_, this_.salarystandard_id as salaryst4_9_0_, this_.post_id as post5_9_0_, this_.statu as statu9_0_, this_.checkstatu as checkstatu9_0_, this_.name as name9_0_, this_.sex as sex9_0_, this_.email as email9_0_, this_.phone as phone9_0_, this_.address as address9_0_, this_.idcard as idcard9_0_, this_.native_place as native14_9_0_, this_.politics_status as politics15_9_0_, this_.sbcardid as sbcardid9_0_, this_.school as school9_0_, this_.credentials as credent18_9_0_, this_.major as major9_0_, this_.bankname as bankname9_0_, this_.bankaccount as bankacc21_9_0_, this_.registrant as registrant9_0_, this_.registerdate as registe23_9_0_, this_.vitae as vitae9_0_, this_.family_information as family25_9_0_, this_.remark as remark9_0_, this_.resume as resume9_0_, this_.photo as photo9_0_ from work.employee this_ limit ?
Hibernate: select department0_.id as id2_0_, department0_.codes as codes2_0_, department0_.simplename as simplename2_0_, department0_.allname as allname2_0_, department0_.parents as parents2_0_, department0_.address as address2_0_, department0_.description as descript7_2_0_, department0_.remark as remark2_0_, department0_.isstart as isstart2_0_ from work.department department0_ where department0_.id=?
Hibernate: select employees0_.dp_id as dp3_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.dp_id=?

 

jsonfast的json语句:

Hibernate: select this_.id as id9_0_, this_.pt_id as pt2_9_0_, this_.dp_id as dp3_9_0_, this_.salarystandard_id as salaryst4_9_0_, this_.post_id as post5_9_0_, this_.statu as statu9_0_, this_.checkstatu as checkstatu9_0_, this_.name as name9_0_, this_.sex as sex9_0_, this_.email as email9_0_, this_.phone as phone9_0_, this_.address as address9_0_, this_.idcard as idcard9_0_, this_.native_place as native14_9_0_, this_.politics_status as politics15_9_0_, this_.sbcardid as sbcardid9_0_, this_.school as school9_0_, this_.credentials as credent18_9_0_, this_.major as major9_0_, this_.bankname as bankname9_0_, this_.bankaccount as bankacc21_9_0_, this_.registrant as registrant9_0_, this_.registerdate as registe23_9_0_, this_.vitae as vitae9_0_, this_.family_information as family25_9_0_, this_.remark as remark9_0_, this_.resume as resume9_0_, this_.photo as photo9_0_ from work.employee this_
Hibernate: select this_.id as id9_0_, this_.pt_id as pt2_9_0_, this_.dp_id as dp3_9_0_, this_.salarystandard_id as salaryst4_9_0_, this_.post_id as post5_9_0_, this_.statu as statu9_0_, this_.checkstatu as checkstatu9_0_, this_.name as name9_0_, this_.sex as sex9_0_, this_.email as email9_0_, this_.phone as phone9_0_, this_.address as address9_0_, this_.idcard as idcard9_0_, this_.native_place as native14_9_0_, this_.politics_status as politics15_9_0_, this_.sbcardid as sbcardid9_0_, this_.school as school9_0_, this_.credentials as credent18_9_0_, this_.major as major9_0_, this_.bankname as bankname9_0_, this_.bankaccount as bankacc21_9_0_, this_.registrant as registrant9_0_, this_.registerdate as registe23_9_0_, this_.vitae as vitae9_0_, this_.family_information as family25_9_0_, this_.remark as remark9_0_, this_.resume as resume9_0_, this_.photo as photo9_0_ from work.employee this_ limit ?
Hibernate: select department0_.id as id2_0_, department0_.codes as codes2_0_, department0_.simplename as simplename2_0_, department0_.allname as allname2_0_, department0_.parents as parents2_0_, department0_.address as address2_0_, department0_.description as descript7_2_0_, department0_.remark as remark2_0_, department0_.isstart as isstart2_0_ from work.department department0_ where department0_.id=?
Hibernate: select employees0_.dp_id as dp3_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.dp_id=?
Hibernate: select exams0_.dp_id as dp2_1_, exams0_.id as id1_, exams0_.id as id3_0_, exams0_.dp_id as dp2_3_0_, exams0_.name as name3_0_, exams0_.examtype as examtype3_0_, exams0_.examlevel as examlevel3_0_, exams0_.author as author3_0_, exams0_.createtime as createtime3_0_, exams0_.content as content3_0_, exams0_.remark as remark3_0_, exams0_.annexs as annexs3_0_, exams0_.isstart as isstart3_0_ from work.exam exams0_ where exams0_.dp_id=?
Hibernate: select posts0_.dp_id as dp2_1_, posts0_.id as id1_, posts0_.id as id4_0_, posts0_.dp_id as dp2_4_0_, posts0_.codes as codes4_0_, posts0_.name as name4_0_, posts0_.posttype as posttype4_0_, posts0_.description as descript6_4_0_, posts0_.remark as remark4_0_, posts0_.isstart as isstart4_0_ from work.post posts0_ where posts0_.dp_id=?
Hibernate: select employees0_.post_id as post5_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.post_id=?
Hibernate: select employees0_.post_id as post5_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.post_id=?
Hibernate: select posttitles0_.dp_id as dp2_1_, posttitles0_.id as id1_, posttitles0_.id as id5_0_, posttitles0_.dp_id as dp2_5_0_, posttitles0_.codes as codes5_0_, posttitles0_.name as name5_0_, posttitles0_.description as descript5_5_0_, posttitles0_.remark as remark5_0_, posttitles0_.isstart as isstart5_0_ from work.posttitle posttitles0_ where posttitles0_.dp_id=?
Hibernate: select userses0_.dp_id as dp2_1_, userses0_.id as id1_, userses0_.id as id8_0_, userses0_.dp_id as dp2_8_0_, userses0_.roal_id as roal3_8_0_, userses0_.codes as codes8_0_, userses0_.name as name8_0_, userses0_.password as password8_0_, userses0_.phone as phone8_0_ from work.users userses0_ where userses0_.dp_id=?
Hibernate: select roal0_.id as id6_0_, roal0_.name as name6_0_, roal0_.description as descript3_6_0_ from work.roal roal0_ where roal0_.id=?
Hibernate: select userses0_.roal_id as roal3_1_, userses0_.id as id1_, userses0_.id as id8_0_, userses0_.dp_id as dp2_8_0_, userses0_.roal_id as roal3_8_0_, userses0_.codes as codes8_0_, userses0_.name as name8_0_, userses0_.password as password8_0_, userses0_.phone as phone8_0_ from work.users userses0_ where userses0_.roal_id=?
Hibernate: select salarystan0_.id as id10_0_, salarystan0_.name as name10_0_, salarystan0_.count as count10_0_, salarystan0_.registrant as registrant10_0_, salarystan0_.createer as createer10_0_, salarystan0_.registerdate as register6_10_0_, salarystan0_.datas as datas10_0_ from work.salarystandard salarystan0_ where salarystan0_.id=?
Hibernate: select employees0_.salarystandard_id as salaryst4_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.salarystandard_id=?
Hibernate: select department0_.id as id2_0_, department0_.codes as codes2_0_, department0_.simplename as simplename2_0_, department0_.allname as allname2_0_, department0_.parents as parents2_0_, department0_.address as address2_0_, department0_.description as descript7_2_0_, department0_.remark as remark2_0_, department0_.isstart as isstart2_0_ from work.department department0_ where department0_.id=?
Hibernate: select employees0_.dp_id as dp3_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.dp_id=?
Hibernate: select exams0_.dp_id as dp2_1_, exams0_.id as id1_, exams0_.id as id3_0_, exams0_.dp_id as dp2_3_0_, exams0_.name as name3_0_, exams0_.examtype as examtype3_0_, exams0_.examlevel as examlevel3_0_, exams0_.author as author3_0_, exams0_.createtime as createtime3_0_, exams0_.content as content3_0_, exams0_.remark as remark3_0_, exams0_.annexs as annexs3_0_, exams0_.isstart as isstart3_0_ from work.exam exams0_ where exams0_.dp_id=?
Hibernate: select posts0_.dp_id as dp2_1_, posts0_.id as id1_, posts0_.id as id4_0_, posts0_.dp_id as dp2_4_0_, posts0_.codes as codes4_0_, posts0_.name as name4_0_, posts0_.posttype as posttype4_0_, posts0_.description as descript6_4_0_, posts0_.remark as remark4_0_, posts0_.isstart as isstart4_0_ from work.post posts0_ where posts0_.dp_id=?
Hibernate: select employees0_.post_id as post5_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.post_id=?
Hibernate: select posttitles0_.dp_id as dp2_1_, posttitles0_.id as id1_, posttitles0_.id as id5_0_, posttitles0_.dp_id as dp2_5_0_, posttitles0_.codes as codes5_0_, posttitles0_.name as name5_0_, posttitles0_.description as descript5_5_0_, posttitles0_.remark as remark5_0_, posttitles0_.isstart as isstart5_0_ from work.posttitle posttitles0_ where posttitles0_.dp_id=?
Hibernate: select employees0_.pt_id as pt2_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.pt_id=?
Hibernate: select userses0_.dp_id as dp2_1_, userses0_.id as id1_, userses0_.id as id8_0_, userses0_.dp_id as dp2_8_0_, userses0_.roal_id as roal3_8_0_, userses0_.codes as codes8_0_, userses0_.name as name8_0_, userses0_.password as password8_0_, userses0_.phone as phone8_0_ from work.users userses0_ where userses0_.dp_id=?
Hibernate: select salarystan0_.id as id10_0_, salarystan0_.name as name10_0_, salarystan0_.count as count10_0_, salarystan0_.registrant as registrant10_0_, salarystan0_.createer as createer10_0_, salarystan0_.registerdate as register6_10_0_, salarystan0_.datas as datas10_0_ from work.salarystandard salarystan0_ where salarystan0_.id=?
Hibernate: select employees0_.salarystandard_id as salaryst4_1_, employees0_.id as id1_, employees0_.id as id9_0_, employees0_.pt_id as pt2_9_0_, employees0_.dp_id as dp3_9_0_, employees0_.salarystandard_id as salaryst4_9_0_, employees0_.post_id as post5_9_0_, employees0_.statu as statu9_0_, employees0_.checkstatu as checkstatu9_0_, employees0_.name as name9_0_, employees0_.sex as sex9_0_, employees0_.email as email9_0_, employees0_.phone as phone9_0_, employees0_.address as address9_0_, employees0_.idcard as idcard9_0_, employees0_.native_place as native14_9_0_, employees0_.politics_status as politics15_9_0_, employees0_.sbcardid as sbcardid9_0_, employees0_.school as school9_0_, employees0_.credentials as credent18_9_0_, employees0_.major as major9_0_, employees0_.bankname as bankname9_0_, employees0_.bankaccount as bankacc21_9_0_, employees0_.registrant as registrant9_0_, employees0_.registerdate as registe23_9_0_, employees0_.vitae as vitae9_0_, employees0_.family_information as family25_9_0_, employees0_.remark as remark9_0_, employees0_.resume as resume9_0_, employees0_.photo as photo9_0_ from work.employee employees0_ where employees0_.salarystandard_id=?

 

我的解决思路:只将部分需要的属性转为json,其他过滤掉,需要对象属性的某一个属性的话特别给它弄进去就好了。

posted @ 2016-10-17 19:54  guodaxia  阅读(150)  评论(0编辑  收藏  举报