小弟刚学hibernate不久,对于查询还不是很熟悉,现在有两张表,下面这张是自关联表,
- SQL code
CREATE TABLE "server_position" ( //服务器地点表 "position_id" numeric(10,0) NOT NULL DEFAULT NULL, //逻辑主键 "position_name" varchar(30) DEFAULT NULL, //地点名称 "position_depth" numeric(2,0) NOT NULL DEFAULT NULL, //结点深度 "position_parent_id" numeric(10,0) DEFAULT NULL) //父结点idCREATE TABLE "public"."server" ( //服务器表 "server_id" numeric(10,0) NOT NULL, //逻辑主键 "server_label" varchar(30) DEFAULT NULL, //服务器标签 "server_position" numeric(10,0) DEFAULT NULL) //服务器地点,于服务器地点表position_id做关联
我地点表里面的数据是这样插的:
position_id position_name position_depth position_parent_id
1 中国 0 0
2 上海 1 1
3 黄浦区 2 2
3 徐汇区 2 2
我现在就想查 server表,用hibernate做映射的话得到server对象。
- Java code
List list = this.getHibernateTemplate().find("FROM Server");
前端通过
- Java code
server.getPosition().getPositionName()
如何能把整条路径全显示出来?改变表结构也行(目前全部是自学的也不清楚这样设计表合不合理)。
------解决方案--------------------
常见的 “组”都是 内关联的
hibernate 使用 m2o
<many-to-one name="Group1" class="inc.xxx.persistent.entity.Group1" fetch="select">
<column name="PARENT_ID" precision="10" scale="0" />
</many-to-one>
然后 自己在dao中再实现一个 迭代查询 这样就把树的叶子全取出来 具体使用那种结构来保存
自己选择。。