MybatisPlusException: Error: Cannot execute table Method, ClassGenricType not found

1521 ワード

エラーの説明:
mpのIService CRUDインタフェースを使用して次のエラーを報告します.
com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Cannot execute table Method, ClassGenricType not found
プロジェクトの背景:
プロジェクト統合Mybatis-plus(以下mpと略称する)の後、大量にデータを挿入したいし、自分でsqlループ挿入を書きたくないし、mpのMapper CRUDインタフェースも使いたくない.このインタフェースは単一のデータ挿入しかサポートされていないので、ループ挿入は気分が悪い.公式ドキュメントを見ると、Service CRUDインタフェースは大量のデータ挿入をサポートしていることがわかります.
    :
//       (    ,    )
boolean save(T entity);
//   (  )
boolean saveBatch(Collection entityList);
//   (  )
boolean saveBatch(Collection entityList, int batchSize);

そこでクラス実装IServiceを単独で書きました インタフェース、しかしクラスの中でベースクラスの中のすべての方法を実現する必要があります(試してみて、正常に保存することができなくて、明らかに構想が間違っています)
ネットで検索してみると、次のクラスがIServiceを実現していることがわかりました.
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl

so、私は直接このクラスを継承します.以下のようにします.
public class IServiceImpl extends ServiceImpl,          :

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Cannot execute table Method, ClassGenricType not found
ソリューションは次のとおりです.
public class IServiceImpl extends ServiceImpl
対応するMapperとmodelクラスを書いて、最初にServiceImplのソースコードを見たときに前の2つのものが定義されていることに気づきましたが、影響しないと気にして構いませんでしたが、エラーを報告すると後のmodelと大きく関連していて、指定していないと対応するClassGenricTypeが見つかりません.
もう一度試してみると、両方の対応のタイプが必要で、少なくてもだめで、対応するmapperの中でBaseMapperを継承する際にもモデルが指定されているので、両方の場所が対応しているので、勝手に1つ書いておくとエラーになります.
説明:以上は個人的な理解ですが、間違っているところがあるかもしれません.間違っている場合は、指摘してください.