大規模なデータセットのために、user_idがUserTicketsテーブルまたはRestOfWorldTicketsテーブルにマッピングされる2セットのテーブルが作成されるHibernateベースのアプリケーションがあります。 エンティティJavaオブジェクトの@Tableが、ユーザの選択に基づいて動的にマッピングされる方法を知りたいですか? UserTicketsを使用してダイナミック@Table名(入力ベース)
ので@Entity
@Table(name = "**UserTickets**")
public class UserTickets {
@Id
@Column("Internal_id")
@GeneratedValue(strategy = IDENTITY)
private int internalId;
@Column("user_id")
private int userId;
@Column("state")
private String state;
@Column("city")
private String city;
@Column("address")
private String address;
@Column("ticketNumber")
private String ticketNumber;
..
// Setters and Getters
}
UserTickets DB Table
Internal_id | User_id | State | City | Address | ticket_number | ...
101 | 1025 | AZ | Tuscan | .. | 10256912 |
102 | 1026 | NC | Durham | .. | 10256983
RestOfWorldTickets DB Table
Internal_id | User_id | State | City | Address | ticket_number |..
101 | 1058 | {null} | London | .. | 102578963 |..
102 | 1059 | {null} | Berlin | .. | 112763458 |..
The user and table mapping are now defined in a new table.
TableMapping Database table.
Internal_id | User_id | TableMapped |
1 | 1025 | UserTickets |
2 | 1026 | UserTickets |
3 | 1058 | RestOfWorldTickets |
4 | 1059 | RestOfWorldTickets |
は、私の基準APIのクエリはHQLクエリにそれらを変更することなく、自動的に動作するように私は動的にUserTickets Javaオブジェクトに@Table属性をマップする方法、結果セット?
インターセプタを使用している可能性がありますhttp://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/Interceptor.html?
...ので、この解決策のいくつかの違い/ probkemsが可能使用して
openjpa
でテストしていを理解していました:あなたは、ユーザーIDを持っている、あなたはそれでクエリを作成したいですこのidに基づいて、 'UserTickets'または' RestOfWorldTickets'に対抗するべきです。また、おそらく_Internal_id |を持つマッピングテーブルを使用したくないでしょう。 User_id | TableMapped_? – pirho