mybatis 关联关系 处理问题

灯光下的宁静 发布于 2014/04/14 16:58
阅读 370
收藏 0
<resultMap id="teacher" type="test.Teacher" autoMapping="true">
        <result property="t_id" column="t_id" />
        <result property="t_name" column="t_name" />
        <result property="s_id" column="s_id" />
        <association property="student" column="t_id"  select="getStudentById"/>
    </resultMap>
    
    <select id="getTeacherById" resultMap="teacher">  
        select * from teacher where s_id=#{s_id}    
    </select>
    
     <select id="getStudentById" resultMap="student">  
        select * from student where t_id=#{t_id}    
    </select>
    
    <resultMap id="student" type="test.Student" autoMapping="true">
        <result property="s_id" column="s_id" />
        <result property="s_name" column="s_name" />
        <result property="t_id" column="t_id" />
        <association property="s_Teacher" column="s_id"  select="getTeacherById"/>

    </resultMap>

如果这样配置的话    无论查询student 还是teacher 都是循环查询直接内存溢出     how to resolve it


加载中
0
千斤难买春秋醉
千斤难买春秋醉

难道 s不是student ,t 不是teacher的意思吗

<association property="student" column="s_id"  select="getStudentById"/> 

<select id="getTeacherById" resultMap="teacher">   
        select * from teacher where t_id=#{t_id}     
    </select> 
     
     <select id="getStudentById" resultMap="student">   
        select * from student where s_id=#{s_id}     
    </select> 

0
huan
huan

目测写了一个无限递归。。。。

查S 会关联查T,然后再关联查S。。。。。反反复复无穷尽也。

去掉一个关联关系即可。

灯光下的宁静
灯光下的宁静
回复 @huan : 但是还是会出现循环查询的问题,内存溢出, 我是按照那个地方的配置弄的 还是不行啊
huan
huan
回复 @成俊达 : 这不正是我说的,使用关联查询,而不要使用级联查询。不要在关联中使用 类似 select=“xxx”这种形式
灯光下的宁静
灯光下的宁静
回复 @huan : 有个疑惑希望你能解释下 谢谢 http://legend2011.blog.51cto.com/3018495/973579 这个人的配置为什么可以呢?
huan
huan
回复 @成俊达 : 是的 关联中 select="getStudentById" 这种模式用的极少,基本都是使用数据库中多表关联查询
灯光下的宁静
灯光下的宁静
回复 @huan : 你的意思一般都是只做简单的实体映射,查询的话把关联关系写在where子句中?
下一页
0
LucEsape
LucEsape
你这是多对多关联,需要第三张表来辅助
0
double9
double9

表的设计都有问题,从你的查询语句来看,student表外键关联teacher表,teacher表外键关联student表。这怎么能做到!

0
灯光下的宁静
灯光下的宁静

我找到了一种解决办法..

0
灯光下的宁静
灯光下的宁静

有个疑惑希望你能解释下 谢谢   http://legend2011.blog.51cto.com/3018495/973579   这个人的配置为什么可以呢?


返回顶部
顶部