在hibernate中使用视图

时间:2014-10-27 12:34:52

标签: java mysql hibernate

我正在加入4个表并创建一个视图。

表的详细信息如下,

System:
Integer SystemId;
String Systemvalue;

Client:
Integer ClientId;
String login_username

ClientSystem:
Integer ClientSystemId;
Integer SystemId;

Login:
String login_username;

加入上面的4个表(左连接和右连接)我创建了一个视图。该视图并不意味着相同地标识任何行(它没有任何主键),因为此查询由左右连接组成,一些列将为null。

但是hibernate需要每个表的主键。

我尝试了以下方法:

  1. 考虑视图的每一列,制作复合主键。
  2. 尝试序列
  3. 通过遵循第一种方法,我遇到的问题是,每当我尝试查询时,我曾经得到的元组数量等于在工作台中手动运行查询时返回的元组数量,但所有对象都会是空的。

    我想过尝试第二种方法,但谷歌搜索后才知道mysql不支持序列,因此只留给我的是编写存储过程来为每个元组生成唯一编号。

    请告诉我要采取哪种方式?

1 个答案:

答案 0 :(得分:0)

我结合了LoginUsername和SystemId(如果为null则为null,然后将其设为0),以便它成为视图的主键。

现在问题已经解决了。