

例えば、ユーザー情報をもつuserテーブル  
user_0, user_1, user_2, user_3（userIdを4で除算したときのあまりがテーブル名の後ろにつく）  
に対してentityとrepositoryをテーブルの数だけ複数実装しなくても良い実装方法を知りたいです。

最悪の場合、service層で使用するrepositoryを動的に変更しようとはしてますが、同じようなentityとrepositoryを複数実装したくないです。

よろしくお願いします。


CC BY-SA 3.0
2017-08-25T05:32:53.110
37480
2019-10-15T09:01:00.133
7585
question
mysql spring spring-boot database jpa
Spring Data JPAで分割されたテーブルにアクセスするベストプラクティスな実装方法が知りたい


DBからのアプローチですが、同じ構造のテーブルであれば、`UNION`したVIEWを用意する方法があると思います。つまり、以下のようなVIEW「`user`」を作れば、entityもrepositoryも1つで十分になると思います。

[code]

        CREATE VIEW user as (
        select * from user_0
        union
        select * from user_1
        union
        select * from user_2
        union
        select * from user_3
        );
    
[/code]


CC BY-SA 3.0
2017-08-29T10:08:55.457
37569
2017-08-29T10:08:55.457
20098
37480
answer