0

私はテーブルにいる必要があります

Tasks:
 id
 title
 Description

Task_reply_mapping
task_id
parent_id

データを取得するために次のクエリを作成しました

    select t1.id,t1.title,t1.description,t2.id,t2.title,t2.description
from tasks t1
left join Task_reply_mapping trm on t1.id =  trm.task_id 
    left join tasks t2 on t2.id = t1.id
    order by fe.created_at desc limit 0,10

これは正常に機能しているように見えますが、データが正しく入力されていません。このクエリが正しいかどうか知りたいですか?

私のマッパーファイルには

  <resultMap id="TaskResultMap" type="com.mycom.myproj.bean.TaskBean">
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="title" jdbcType="VARCHAR" property="title" />
    <result column="description" jdbcType="VARCHAR" property="description" />
  <collection ofType="com.mycom.myproj.bean.TaskBean" property="replyTask">
    <id column="id" jdbcType="BIGINT" property="id" />
        <result column="title" jdbcType="VARCHAR" property="title" />
        <result column="description" jdbcType="VARCHAR" property="description" />
   </collection>
  </resultMap>

または、マッパークラスで何か間違ったことをしています。

オブジェクト内のレコードは、最初のインデックスのように配置され、返信または新しいタスクなどの最新のタスクが配置されます。

このようなレコードを挿入する必要があります

   Task1
     --1st reply task
     --2nd reply task
  Task 2
      --1st reply task
      --2nd reply task

さらに情報が必要な場合はお知らせください。

4

2 に答える 2

1

どこに問題があるのか​​ わかりません。

おそらくクエリとマッピングが正しくないと思います。

これを試して:

select 
    t1.id
    ,t1.title
    ,t1.description
    ,t2.id as id_2
    ,t2.title as title_2
    ,t2.description as description_2
from tasks t1
    left join Task_reply_mapping trm on t1.id =  trm.task_id 
    left join tasks t2 on t2.id = t1.id
order by fe.created_at desc limit 0,10

マッピング

<resultMap id="TaskResultMap" type="com.mycom.myproj.bean.TaskBean">
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="title" jdbcType="VARCHAR" property="title" />
    <result column="description" jdbcType="VARCHAR" property="description" />
    <collection ofType="com.mycom.myproj.bean.TaskBean" property="replyTask">
    <id column="id_2" jdbcType="BIGINT" property="id" />
        <result column="title_2" jdbcType="VARCHAR" property="title" />
        <result column="description_2" jdbcType="VARCHAR" property="description" />
   </collection>
</resultMap>

クエリでは、「タイトルの説明id」を 2 つ入力する必要and twoがあるため、そこに問題がある可能性があります。

于 2013-04-25T07:05:14.680 に答える
1

2番目joinTask_reply_mappingテーブルにある必要があります:

select t1.id,
       t1.title,
       t1.description,
       t2.id,
       t2.title,
       t2.description
  from tasks t1
       left join Task_reply_mapping trm
           on t1.id = trm.task_id 
       left join tasks t2
           on t2.id = trm.parent_id

これがデモです。

于 2013-04-24T13:56:17.213 に答える