日期:2014-05-20  浏览次数:20681 次

hibernate中数据库有外键
表A(idA,nameA,foreignID).表B(idB,nameB).idA和idB是主键,foreignID是外键对应表B的idB.
我有一个表单要提交。表单的内容:
1,idA,nameA通过<s:textfield name="idA和nameA"/>
2,一个下拉框,内容是从B中查出的idB和nameB,显示是nameB。但是提交表单时是idB。这个下拉框怎么设计?下拉框中的nameB值要从数据库中查(表B是随时更新的)。是hibernate中,不要直接写select idB nameB from B。谢谢。

因为idB是对应A的foreignID。这样表A的idA,nameA,foreignID就都有了。就可以提交表单之后执行各自的setter方法了。
这是比较传统的方法实现,请问hibernate中有没有方法,可以直接后台帮我搞定。也就是说我下拉框里选出来的就是nameB,提交的也是nameB。hibernate会自动根据这个nameB得到idB(hibernate应该有这本事吧?)(idB才是存表A是要的东西,nameB不是)??听有人说要配置hibernate的一个什么关联。请问具体点这个关联怎么弄??不是数据库中关联。


------解决方案--------------------
你的表都配实体了吗?
------解决方案--------------------
把B表放入A表中
------解决方案--------------------

------解决方案--------------------
第一 hibernate不是JDBC

第二 下拉框里的值可以每次都查询

第三 可以根据name获得id 但是我们通常都是value为id 显示给客户看的是name 而非value为name 显示给客户看的也是name

第四 如果仅仅是想要那个ID 不需要配置关联 不过正常人都会配置关联的 这样的话表A就会持有表B 那么保存的时候 就不仅仅要表B的那个关联的ID 而是要根据那个ID查询出表B的对象set进表A 如果LZ对这方面不是很了解的话 可以先不用配置这个