java hibernate 问题,我有两张表,没有主外键关系,可以设置它为一对多,或者多对一吗?困惑!
如果我想查出一张表,顺便查出另一张表,是不是必须是多对一,或者一对多?
Hibernate中的mapping,和数据库中的主外键约束 没有绝对的联系。
即使数据库中不设置外键关联,同样可以在hibernate中设置一对多,或者多对一,多对多的映射关系,只要你的表符合外键关联的设计要求就可以。
查询可以用HQL或者Native SQL,这个看你自己选择。如果用HQL就必须进行Mapping。如果用原生SQL就需要你自己写sql语句,并将查询结果自己解析成实体类。
不可以。
你可以在数据库中设置主外键,那样的话你在刷的时候关系就可以刷出来了。
没有关联关系的话,就不用 设置 一对多 多对一的啦. 如果想实现 你描述的那种 情况. 你可以把 从表,抽象成一个 类, 然后做主表抽象出的类的 集合属性的成员. 说的有点抽象....希望能明白. 最后说一句哦. 学hibernate 就要把思想从 表 转移到 对象上!对你的学习帮助很大的 嘻嘻
数据库的主外键关系不一定非要设置,用hibernate关联了就行。在entity中用注解或者在xml中做好关联后,就能实现你说的查一张表顺便带出另一张表的相关数据了。
不用。在HQL语句里面连接两张表就可以了。但是,注意HQL不支持ON语句