使用Hibernate处理不同表中不同记录的排序

时间:2010-12-14 09:32:32

标签: java sql hibernate orm

假设我有一个包含以下表格的数据库:

CREATE TABLE user (
   user_id int NOT NULL AUTO_INCREMENT,
   ...
   PRIMARY KEY (user_id)
);
CREATE TABLE action_x (
   action_x_id int NOT NULL AUTO_INCREMENT,
   ...
   not_the_same_columns_as_for_action_y,
   user_id int,
   PRIMARY KEY (action_x_id)
);  
CREATE TABLE action_y (
   action_y_id int NOT NULL AUTO_INCREMENT,
   ...
   not_the_same_columns_as_for_action_x,
   user_id int,
   PRIMARY KEY (action_y_id)
);

关系是,用户< = [1:M] => action_x和user< = [1:M] => action_y。

'user'表包含用户的数据,例如登录名和密码。 'action_one'和'action_two'表包含两个不同操作的数据。这些行为彼此不同,所以它们必须分成两个表。

  • 总结一下,1个用户可以有0或 更多action_x记录和0或更多 action_y记录。

我的问题是,我想实现(通过在数据库中存储适当的数据)一种方式来告诉用户她或她将按特定顺序执行哪些操作。

  • 例如,user_id = 1将执行 action_x_id = 2,之后, action_y_id = 1,然后action_x_id = 10, 等等。

我使用MySQL作为数据库源,使用Hibernate 3.6.x和Java。

有没有标准方法来处理这样的问题?你会如何解决这个问题?

感谢您的帮助,祝您度过愉快的一天! =)

1 个答案:

答案 0 :(得分:1)

我会再介绍一张桌子。我们将它命名为GeneralAction并将用户FK设置为​​表。所以提交的文件应该是

general_action_id
user_id
action_x_id
action_y_id

对于表中的每个记录,action_x_id或action_y_id为空