MySQLを介したHibernateを使用するマルチテナントのWebベースのエンタープライズアプリケーションがあります。お客様が必要とするすべてのレポートにJasperReportsを使用しますが、ユーザーが独自のクエリを実行できるように、アドホックレポートも提供する必要があります。
他の人はこれをどのように達成しましたか?
私は次のいずれかができると考えています。
@ManyToOne
エンティティをハイドレイトして、いずれかがそのエンティティのに置き換えられるように、Excelまたはxml形式で完全なエクスポートを提供しtoString()
ます。これは、大量の外部キーIDではなく、データが実際にユーザーにとって意味のあるものになるようにするためです。データベースコピーに対してSQLを実行させます。すべてのテーブルにTENANT_IDがあることを確認し、データベースコピーにアクセスできるようにしますが、バックグラウンドですべてのクエリにIDを追加します。このデータベースコピーにデータのみが含まれていることを確認することもできました。ただし、マルチテナントアプローチ全体を打ち負かすようなものです。