2017-02-08 218 views
0

我在名为Institute的数据库中有一个表,其中存储了与机构有关的详细信息。该表中的一列是Institute_type_id,它是具有PK Institute_type_id的Institute_type表的FK。表institute_type包含一个更多列的Institute_type_name。
在JSP中有一个页面根据搜索列出研究所。还有一部分内容是“精确搜索”,用户可以选择institute_type并缩小搜索范围。
我已经实现了使用Spring MVC并使用模型属性来存储用户值并使用条件搜索来查询数据库。
让例子 -
研究所(表)
ID名称insitute_type地方
101中学1 ABCHibernate表映射

Institute_type(表)
ID类型
1学校
2学院

模式
Institute.java

@Column(name="INSTITUTE_TYPE") 
private Integer instituteType; 

//Code for other column and getter and setter 

Institute_type.java

@Column(name="ID") 
private Integer ID; 

@Column(name="TYPE") 
private String type; 

//code for setter and getter 

注 - 关系的B/W研究所Institute_type表是一对多的。一个研究所可能有不止一个研究所类型。让学院“ABC”可能是学校和+2学校(第11和第12标准)两者或可能只有一个。一个研究所可能只有+2所学校,或者+学校和学院的组合。等等。
要求 - 当用户选择institute_type来缩小搜索查询时,必须使用标准来缩小搜索范围。
问题 - 如果我使用一对一映射,Hibernate使用左外连接,因此那些与institute_type匹配的机构也在搜索列表中。如何在hibernate中实现问题的解决方案。

回答

0

如果一个机构可能有多个机构类型,我认为这个关系是多对多关系。我想同一个研究所类型可以被多个研究机构使用。此外,为什么不将instituteType映射到Institute_type类?如果将它映射到类,则可以使用HQL/JPQL或Criteria API来创建带连接和过滤器的查询。您现在以什么方式获取您的数据?