mybatis多对多映射
数据库里面有角色实体类app_cms_role
aaarticlea/png;base64,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" alt="" />
权限实体类app_cms_right
aaarticlea/png;base64,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" alt="" />
以及一张中间表app_cms_role_right
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc0AAAC7CAIAAACIK1IiAAAcOElEQVR4nO2dy5XrKhBFFRcBkUanwMRReM68k/BEIdzJy4A3kIACqhD6IGP32euuddu0+Fig6iMER5Nz7r///nMAAAD6MC1BFqEWAAA6MTkEWQAA6An0LAAA9AV6FgAA+gI9CwAAfYGeBQCAvkDPAgBAX6BnAQCgL6WefenpZ5p+pulhzFOZf1YvH5d/T+ucc242D5Lo0+dfFfLOa3HFkQ8zC9k52OxsRWk7f7TNs2srlSnW/pVYPU3TNE364m89G7VVptUd6gVgeDI9+9IhHs2/avpR5p9zzigfzuxz0q/l0JjonFExVM3mofVzybh+tM65l1a/zjmr11xS9gwpe1lR+tuXjtFzzUtprP2LMeo98Y6vd35XcwC4g1TP2iRsBUhUijFrSaSBz6c/LRPa8hQpuwAbK/OKkjgb08U421L7bNQi/yZlfN5pUsarwlWesYky4UCltTZz+DhN2ho1TZNaGxar16oWipYSlFlyh/pp6/NuSkqLBxZHtlTEa2SfqowJQtYorXVaEfn2PXQ2AG8n0bNePOaEODubB9Gz+Z27c87Nv0q/nCtDWBlnuewiRazkKqJTB+SLsHG2uXZr/VSJSgJDjDBLMpvIE2+wZ6OWI/1N9/rZal8orbPlrlyZOWQjzShu6pM4Oxvl/4okP7dWJJTpa1z+CIXvviZbPZGpHOhZ8MUkelaOsz5+kYDFSsJYQi6NL9azbEXpvEEItRfp2USAkfMUg1qZKJRYnmWfuP4XsidKd6OpeZ3p56xa+ol+xwZJK365rMzkQ4yzIdlqGtwRZ8H3ks7Pbs0bGBV1Ip3iJEeS50tJdOPjbDOSHE4qSuJm/C4kr09srZ3KQKotqeILcZZJFMpsj7P0gG2ZeTDO1lrbUhFXJuIsAIF8vQENQFb/+MlH5vkSPXJVl/5e3mensawWZyUdTUizCxVlcwiMnuXibK12cv37O3y3iMwQaeItPpPIE2cgwr09H2eJRj4QZ9PQn0Wy9GMqxrdoibO0wcupKY5J4+z6c8P8CACfRrF+Ni6Z+pnWCdBypdTT5EujfrTxGZNcy+15bblVMZ2ak2ef+YqUSgpcfltWpMy/nbX7e2ml/M271crEW+0wJ8skCtAbdW1DJcrM61TmOtmbPCGqFZne+YcoKEx6cFMEjVXxFfFlkmd4egmp4XuWT87ied6jrAH4CLAf7ADpFEEtETjnMC0A/jrYD7abqNLsRuJfJ8pciFTwp4Ge7UbxFP+CQNyjzPdWBMAfAHoWAAD6Aj0LAAB9maZpQpAFAIB+TNOEqQMAAOiIqGdnupgeAADAUSQ9u2+DEAAAAAlBzyLMAgDARfB6dsPXDwAAQDO8nt1+AwkAAIA2eD2LOAsAAFfB61nMGwAAwFUI6w3wHAwAAC5CWj+LQAsAANcg+htgnwIAAFwCNt0CAEBf4NcFAAB9gZ4FAIC+QM8CAEBfoGcBAKAvd+jZ/BXSB5jFHWrrG7g3sv+q6TnyMjWj1newx7emq1/nnHMvPcU3tDvmTekPaVUIW6ZRPpeNibTMcCrZRADAAe7Ts/1eLX1ZyfOv0q9LStrPS6tHqN2o5a/CS4cYZ5/T9LTOzeah7XL8r3POajHOimWuEZwm5umulggA2MdhPbuIVGXs8mJUH+nie1Lz1bdZNCQvVN1Yp8vL4fDOam3rcdbqRZRFPTubxzQ9lEr1oH0mOtGHJyLrSETzByvzq/3B3JGLGg3isaKpX1r9hqC5hj/7VOYfOWMP8j1bIiBXJuIsALdzSs9a7aOk1et/IWgWd/pJNJyNUob5WSbP7gtvmjdIAsqSy0dS+wwhldGz868KgSb8TGYhjPI3+OyRoa4l8qZxM+Wl1W9owNLaNLBm2VvjbFYm4iwA93NqfnaNrsLnOdWZ9BMRs02StsxOSm7aIlzEWSI5aXxM4yw7GZqEPx9SK9Om1Vv7QDIPcGWcTctEnAXgfk7q2YNxtsi5zVviLKtA2Thb0aq74uzShgvnDfIyW+JsrJdNBADs41I966wmMwDZtGn6cbdPTT5vED5ZfWjeQIiz5Cn/+ripnFQl0wJW04UB/PTrvjjrnNUPJT8HK4/fWaaz2peZ/F3ZEWcb52oAAAtH9Wx65x/CLU32ieGJVSW5ctHy2UmqVmqaxBnesC4qufH3T8b8b3248Q/NfqJ2S56PraEqzhLoJ41E+ZFhQVVWZoGhD+WSVWj5ui7ayPqKq/Yyi0mPH2X+sYmxRxBmAWgG+8HO8c6lYG9iNgou8ADsAfvBDhGla8ucwHcBa2IAdjKMni2WIJzeQwYAAEMAPQu6sLwPCQDgBtKz4LtAnAUgAD0LuoA4C0AAehZ0AXEWgEAHPSt7GAauWYEJs8SBzRIRZwEIvE3P8iZb82UehzBL3Ffm1aYHiLMABA7rWd4Xse5hqIwJQtMorUMyu3GsGidhlhhaMqZZIuIsAIGT/gZT6ou4InkYGrJB1igfJOm69516FmaJw5olIs4CELjUr8sjemsRq9nECYZ60R6NszBLHMosEXEWgMC1fl0r3x1nYZbYYpaIOAtAoLuepbHVajpvIMTZ9ecmu0OYJQ5rlog4C0DgqJ7lfRF5D8N4rNZLSF2PU6Z8oBWKqFpCwSxxdLNExFkAAvfuB7tu2dbQwCwRcRYAwi3rZ6PO/GrfUpglEhBnAQiM7W8As8SPBXEWgAD8DQAAoC9j61kAAPh8oGcBAKAv0LMAANCXM3qWrLg0ZBF7+sxdNPeLy0gfStEVrMmyVrosNK7JJ3npk32/ODTWwtbe7iIo0OXF2rwzznk+wKYyXc6sX84J/c508UtHu0h/wGLgUF1inK96pqY/wpq8MGz8XpWfifm37o1uLDM7fweW41wwbE76i15R0cU1Nn4jaZ9VBw7rWbIraf5V63p1dqsSa8TnjPIXwPyrEouA3NwvHkntXZYtp5rZ95nu8mJq3+MiKNBtIfC7Fhi/2aaSrDgOO9OkfndZF9unUo8w6uLP3Ahhy+T3AXLQocK0kzSsvcxY9on40m/Y3D8gbxyK9726+aieZTe281vvWSO+ZHSm5OOSHFluw2cGcRFnmdrZikoWgzHithi/29JZZGMbC+8eSdar5X9Qs9FEFrbV//R+tk1lsrPDjyKp310ZZ/XT2489tI5xthwhfJl+z3TcfCx+TXKXFv94Lzde6XhuLjMUTU7ebcPmdMeJRX7GULT6piX9B/Vs7hrFJq4XDGvEJ977V+LsbB6lXWGpRplgWtbOVcRB7zNIp/g4Oxu92U2Fe2RaTjogJGuI5OfWioQyB7SpJHE2jCK+39eK0jhr/hn1tPOv0q84CLkRIpU5m4dSeS0l3uTsJ9XI/OxTY5m+5PyCv23YMNl3+ouyX+czhuJdivagnt0dZ3MjPpote39MGWeTKde8rkJZs8GUq70xzia9Ei0btDU1CwVaRHoFpZ+z8ZM5kCV/xre1ycfap1HPB98pbL/7X+VxdtmMp20cGOwIaS1TYJnhVeoxFRqZnX1qKdMfmZ+g24ZNmf18HPqYoWh1yyV8nqPzszvnDZzLjPjSfMkYFfWsUfEWrHzkRY7ngilTe1ucpd1A4+zmDUyRif1cuWD2ztN/zOAu4Rwh2H73vyrirHPWvlwih5kR0lqmQJgEoJJCngF7T5w98HgHcbY3x9cb0OHlx5/0HKww4ktfLlAPf8mcWrC8IpdlJiWk0qgNIFsRx2LlOPsP6bxBWycVYy6J3dnwST/uG+UfbFNZjbOlvSQbZ321D23FEdJapkAcaWQA0wshu6Vrj7PcvMFNwybPLndc+zTCxwxF7lT1WE50Yv0svdejjqXMuq7CiE/wBizN/UJK0BHCAqB14oxb18XYADa6CC49He/DskmezTU1vHtkkly3lEyT5ZZ+jU1l4UVJ+v1pS5UaBhKzGiwfIf7lb3mZ1LuyYlOZrutaWvI0hVEk0RnbZSankM5F3jNs9nVcW/z5qKF4V5jFfrAN0nmDL+OP2FR+BvetMTpIYX15ceFv+PbcOe/zNbEfrEb8czv0FbCTP2JT+Wkc26dwHz3+ELx3KLKzG33+3kHPXsFt/o3vNYqETeWH8n0d92nfCHoWAAD6Aj0LAAB9gZ4FAIC+QM8CAEBfzujZP+OLmNtyXLHCbjSPOIbC+m9dmZ93cc1vsEjnN/LFDn0a8/RLoblhw3y/AewKR+vNGx3/QAuH9ewf8kVk1vbdtdxvHLtCf7rYLub7iDUM5D6+9ESyrz/zw4ZlWLvCjK90/AMt3ORv8KG+iI4soV3UbPhuZ3wRx/SIY1jjLDlRfBfzfdRqsMKOpVrHlV/znXaFY/bmbY5/oIW7/Lo+1RdxqVfUs4d8EUM70y3Yb/eIKynu2YUu5vtIMgx0aUewY6nacTlvtSsM1Q3Wm1C0I3GX/2y8GD7LF3Gpi4+zB30RYzs1iTUDeBeVFHpWjrNMHzXq2VBmnOcllYrDhrbijXaF8cjBevMuJyrQwk3vU3DuQ30Rly/Cxdnm7Scfc2WWlDZaW/MGaR+1GQamZfrBsD1sSJb32RXGIwfrTcTZkTi+3uBv+CI6V5k3OOiLGNqZ3gC+3SOuhLEr3HoORvwGmw0DE4vCPM4yHZfzVrvCUOZgvYl5g5E4sX72j/gi0scUmUHcQV/EQT3iChi7wjQ9X9dF+kg0DORvRIiL4LROyPIdx53j99oVDtqbCLNDgf1g4wG7woE4Ha/GcfwD7wP7wYYBdoVDctCucEDHP/A+oGevAHaF4CrQm98I9CwAAPQFehYAAPoCPQsAAH2BngUAgL4MpGf32Osxln3ske1lykZ8uf2j5PhXOj1+LbfZAPrakqfnV3oDvnS+Vzh9XfmUbHYQ7DQLg9B1le7T+l/VTgQ3bIpVxkI7swuBWj6m9YqDFtzCWHp2h70eY9nHH9lcJmvEx9o/blXknR7/OBfZAO5bCrrbG9A+lSJeGepBYxM13hTsNPkRkmxRq3rWVIZNvjuZbScpn5iQsT52ok0l6M1AetbtstcrLfuEI5vL5Iz4eMu+zYo2iEt3qJOTMsTiTkyUibuKtNZmphuFFiM/L+/IXiVVi3lvtgGMJae7SSu1H/EGtE+ln94V7KE1dUhgjTfTFGGEHImzzK/SOMu2k5Zvid2+EGc33ZZBDwbVs9v2epzNPntkc5mMEZ9g2bfVpE0xa62fwVBJBIqhbElmE3nivfRs1HKkv79eP/v76Hg/3bCf/u02gOzXvtIb0D6V+WfU086/Sr9ij4vGm0kIk0ZIMmFV92CUh03ptlNpZ9oYNs62DU7QgdH0bLHz/QI921gmY8Qnx9mqNKjux3fpUnQS85IA4V+QUyYKJZYN9YnBk5zZEr8Zhd5vT8U08krPKhtnVLWNPS4bbzbG2VY9GymGDeNqVrQzsQqJDYOeHYtB9ey2vR43fNkjm8vkjPiq8wYVaqOZPsah2pJGhBBnmUShzPY4Sw/YCkN/Jc46Z+36EKnmd+Pc5fMGfC63tIFxj8zaKZTPvAKjfV4LXM5oerbZXm8rzvKvVKmVyRvxcfaPXPaa02MKCQz+Dt95/7zZVxTnDYpEHvpMfr3X5uMsiUQXxdmuNoBN8wZnvAFZR92a8WbFtzOOkNY4Wx02FZfek3FWkuGgEwPp2T32eoxlX7Fy5UfbHWWKRnyF/SNbkeT0KHxTP2mglL95t1qZOJ0Q5huZRAE6GaEt8eGb1znTdfIyeRRVXW/0XhtAcrKSJ1tM7ce9AUOvJR6bSXdT403eTlMcIXFdlzgehGGTq2m+nQ8zN10I3GLEttejgYsYS8/+YdIpglri2FxvA3jY4g/egGAUBtKzf5koB+1G4qD0tAE87EwIb0AwCNCzH0UP0zwY8QHQGehZAADoC/QsAAD0BXoWAAD6Aj0LAAB9GU3Psq8lZ+0Kc+ICWEuPZIzjkrdYp2ZLLVZ47RZzTV6LlUfi4s73TatGyV7v7Ek+m5078+z5bDf3Qx+B8RlKzxKLOfuMVrOMXaGQnd1awxnHJY4baWBtsMJrt5jb8lqMX1MkaxJrxCe1k2vh6ZN8Kjt/5oXz2WTuhz4C4zOSnuV3FnJ2hTzbcTZUkew7JPU2WeHtsOTY9lrc3AGZN0nYUM+2k5TgOXmSz/YRf+aF87nLDAV9BMZlID2bj+Z1tDF2hQLbcZZxY6IHtFnhuR0Wcw1ei7VrkmlS9ZrfvoZPnuTTfcSfeeF87jL3Qx+BcRlIz9aGV2pXKCDH2WL+i73aG63w3E6tlDV+1zVcNqnjNdxwkk/3kRRn36xn3Rf1ERiQgfRs5XbJudSukKdh3iAvPKm31Qpvh8Xcttdi/Z6UaVK3e9K8nSxn+6g2b1D7OtvmfugjMC4D6Vl5+p+xK2SJ70eisXUrzq6S56gVXqN4IY1vfsYiNIk14mPb6Vvb8oyl8SSf7SPmzIvnc5e539/towtfeQk6MZKedU5YzvLD2BW2ZWcdFLPVRZN+yb5zjBVeu8Wc3PiGNUNyk0ojPnJA0p49a4aOn+Qd2cszL5zPXeZ+f7uPEGY/gKH0LABgJzMxiwejMpqeBQDsAS67nwD0LAAA9AV6FgAA+gI9CwAAfYGeBQCAvkDPAgBAX87o2dz5LU+s+7kRQzmlWC+7fPnqxLzrOzM9ypcisrVLDnUi5A1aysydVizmb98+wGyUkH2rxal75CR6A7LdIZkQ8itDY989jXmaeYfjX6gof7d8Uft6JF2fW+xVYc/fgRVS93Uc3iz5sRzWs4zz2y4/t7hhZv5V3jN0w+DOPunVUpjRuawKJ9Red6grYV6Vff3bs51vYa9FOhslJ/ualjPD74liu6NiQljsdCLZ1593OP7Rzgr7rNjayZH8Fiym7BOx8paOwxquT+WonmV3cO/xczu0Ub10MGCtRrI4K7nJNV1+yctglQnfbRn8q5YJ6TnL75WxSzH+IokCORco2eWaK2kZXlWF131r2xZnRXO/sHWV7Y6KaUtl575nh+MfOewni/J57fOvWv+OipvBsqLJyRu046zGnoSP5KCeZTeM7/NzqxjRC3F2No+pcC0or20mmPJuco0yp6ZnZ6M3h73Vcb7BTzv4i6W4YUyqmo2ikV2M5nJ2X/j2TEdxzy55VrHdUTEhrDlRrexw/PNuVT80Xku1z+ah1KNlxsBxIWzEjoOi/UwO6tndcbbi55bviJeMRJNpO9nDkA+mXO1n46xRFSUbyWfV0s9Z4fTTnGjpbWVUZt9xgRZ6Vo6zTHc06tlQZpznJZW2OP4tGZV6HKi9TjlFOmLHWd0y5MBoHJ2f3Tlv4FzNz63RHMuoTfeN5VdcMGVqPxdnmx99HL5cDzz3OB1naTs35g3S7hDnuCvzBr7fdzj+cW8eaq69yoVxtmPHIc5+JsfXG3DOb81+bn7uzBdV17PUfMtnFz0MxdIKy77T8wZtg7646KwmubKy04+77xLz20/6BGVvnN18Dha6o2pCWDwHo4Z+aZxtsr4kj0/T2eGG2mtw8wbjdRzmDT6TE+tnOee3Vj83mneKc22lcVxIYfzuCjM6YV0X4ybHOtRxhOcR9HmXnzTbXNEzZ0/R5jLZJ6YV8cmVlvLZSapWtVkOzj0ySc/XdZHueBrBhJC/56DWiOVLa6q2ium6riWjWDutqPbWGXoKwwketeMQZj8U7AcDYGH8IDZ+CwEP9oMBsHJsn8J9YJ/CxwI9ewXFA+bN28XRKwLXgo7720DPAgBAX6BnAQCgL9CzAADQF+hZAADoy0B6do/nHuPjxx7ZXqbszpfbP0o2gKXT49/hAm9A51z5xP9Kw8CXzvcK/0yLr0LhsyE7ZxZeoOsq3af1v6qdAm6EFKuMhXZmY754JTtZ+yuMT/A+xtKzOzz3GB8//sjmMll3Ptb+casi7/T41zjtDbhvfehuw0D7VIrYYqgHjU3UY1NwzuQHQ7JFrepZUxkh+e5ktp2kfGJCxlrWiTaV4C0MpGfdLs+90sdPOLK5TM6dj/fx26xoA+qu5/NOkzLEDE9MlAkHKq21memWosXdj3pNhb1Gm1uV7vAGjBWmW0yZ733GMNA+lX56V7CH1tQhgfXYTFOEwXAkzjK/SuMs205aviXO+kKc3TRWBrcxqJ7d9tzjvPfZI5vLZNz5BB+/rSZtillr/QyGSvZpRjO8JZlN5Ik32LNRy5H+pnv97G+u4032punBvd6A7De80jDQPpX5Z9TTzr9Kv2Lnih6bSQiTBkMyN1X3YJRHSOm2U2ln2hg2zraNQ3AXo+nZYjv8BXq2sUzGnU+Os1W9UN2k78Rt8qXhE5solMj5VC6JwZOc2Ty/GZpu9QZk2nOlkZWNM6raxs6VPTYb42yrno0UI4RxNSvambiCxIZBz34Ag+rZbc89bkyzRzaXybnzVecNKtSGOJWBVFvSMBHiLJMolNkeZ+kBW7HpXm/AW+Ksc9auD5FqfjfOXT5vwOdySxsY98isnUL5zCsw2qewwD2MpmebPfe24iz/npVambw7H2f/yGWvOT2mkGjh7/DdIjJDYIq3+EwiD31Qv96A83GWhKcDcbanN2DTvMEZw0DWUbfmsVmx6IyDoTXOVkdIxaX3ZJyVZDi4k4H07B7PPcbHr1jO8qPtjjJFd77C/pGtSHJ6FL6pv5dWyt+8W61MvNUOk5BMogC9Udc2VKLMvL73YZ3RbDXsu9EbkJyX5MkWU+Zxw8DQQYmdZtKz1GOTd84UB0Nc1yV2vTBCcjXNt/Nh5qYxz607bHs9GujJWHr2D5NOEdQSv5jDvn8wDARDM5Ce/cvElVZ2I/G7OehMCMNAMDbQsx9FD3s9WPYB0BnoWQAA6Av0LAAA9AV6FgAA+gI9CwAAfRlNz7KvJWftCnPiAlhLj2Tc5JJXW6cOTC3+eO2+c01ei5Xn5OJ2+E2rRslz7+xJPpudO/Ps+Wx3/EMfgfEZSs8S3zn7jFazjF2hkJ3db8O5ySU2HGlgbfDHa/ed2/JajF9TJGsS684ntZNr4emTfCo7f+aF89nk+Ic+AuMzkp7ltxtydoU823E2VJFsRiT1Nvnj7fDp2PZa3NwWmTdJ2GXPtpOU4Dl5ks/2EX/mhfO5yyEFfQTGZSA9m4/mdbQxdoUC23GWsWiiB7T547kdvnMNXou1a5JpUvWa376GT57k033En3nhfO5y/EMfgXEZSM/WhldqVyggx9li/ou92hv98dxOrZQ1ftc1XDap4zXccJJP95EUZ9+sZ90X9REYkIH0bOV2ybnUrpCnYd4gLzypt9Ufb4fv3LbXYv2elGlSt3vSvJ0sZ/uoNm9Q+zrbjn/oIzAuA+lZefqfsStkiS9NorF1K86ukueoP16jeCGNb37GIjSJdedj2+lb2/KMpfEkn+0j5syL53OX4x/6CIzLSHrWOWE5yw9jV9iWnXVQzFYXTfolm9Ex/njtvnNy4xvWDMlNKt35yAFJe/asGTp+kndkL8+8cD53Of6hj8DgDKVnAQDgCxlNzwIAwLcBPQsAAH2BngUAgL5AzwIAQF+gZwEAoC/QswAA0JdCz+KVdgAAcCmlnsUrmgEA4EqY+VmrJ0haAAC4immamKkDKFoAALgKbr2B1ZMy72kOAAB8Hdx6A8RZAAC4DkHPYt4AAAAugtGzCLMAAHAhpZ5FmAUAgCsp9Cz2KQAAwKXA3wAAAPoCfwMAAOgL9CwAAPTlf5yLE2/JZY25AAAAAElFTkSuQmCC" alt="" />
建立对应的实体类AppCmsRole
package com.qianlong.cms.entity; import java.util.Date;
import java.util.Set; public class AppCmsRole {
private Integer id; private String name; private Date createTime; private Date updateTime; private Integer appId; private String roleName; private String rolePrivilege; private Set<AppCmsRight> rightSet; public Set<AppCmsRight> getRightSet() {
return rightSet;
} public void setRightSet(Set<AppCmsRight> rightSet) {
this.rightSet = rightSet;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name == null ? null : name.trim();
} public Date getCreateTime() {
return createTime;
} public void setCreateTime(Date createTime) {
this.createTime = createTime;
} public Date getUpdateTime() {
return updateTime;
} public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
} public Integer getAppId() {
return appId;
} public void setAppId(Integer appId) {
this.appId = appId;
} public String getRoleName() {
return roleName;
} public void setRoleName(String roleName) {
this.roleName = roleName == null ? null : roleName.trim();
} public String getRolePrivilege() {
return rolePrivilege;
} public void setRolePrivilege(String rolePrivilege) {
this.rolePrivilege = rolePrivilege == null ? null : rolePrivilege.trim();
} @Override
public String toString() {
return "AppCmsRole [id=" + id + ", name=" + name + ", createTime=" + createTime + ", updateTime=" + updateTime
+ ", appId=" + appId + ", roleName=" + roleName + ", rolePrivilege=" + rolePrivilege + ", rightSet="
+ rightSet + "]";
} }
实体类AppCmsRight.java
package com.qianlong.cms.entity; public class AppCmsRight {
private Integer id; private String name; private Integer pid; private String url; private Short type; private Short organization; /* private List<AppCmsRole> rolesList; */ public Integer getPid() {
return pid;
} public void setPid(Integer pid) {
this.pid = pid;
} public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url == null ? null : url.trim();
} public Short getType() {
return type;
} public void setType(Short type) {
this.type = type;
} public Short getOrganization() {
return organization;
} public void setOrganization(Short organization) {
this.organization = organization;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "AppCmsRight [id=" + id + ", name=" + name + ", pid=" + pid + ", url=" + url + ", type=" + type
+ ", organization=" + organization + "]";
} }
对应的xml
<resultMap id="BaseResultMap" type="com.qianlong.cms.entity.AppCmsRole">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="app_id" property="appId" jdbcType="INTEGER" />
<result column="role_name" property="roleName" jdbcType="VARCHAR" />
<result column="role_privilege" property="rolePrivilege"
jdbcType="VARCHAR" />
</resultMap>
<resultMap id="RoleRgiht" type="com.qianlong.cms.entity.AppCmsRole"
extends="BaseResultMap">
<collection property="rightSet" javaType="java.util.Set"<!-- 实体类里面如果是listjavaType就写成java.util.List-->
ofType="com.qianlong.cms.entity.AppCmsRight">
<id column="righrId" property="id" jdbcType="INTEGER" />
<result column="rightName" property="name" jdbcType="VARCHAR" /><!--查询出来的id与role里面的重复,所以改写成别名,防止查询冲突-->
<result column="pid" property="pid" jdbcType="INTEGER" />
<result column="url" property="url" jdbcType="VARCHAR" />
<result column="type" property="type" jdbcType="SMALLINT" />
<result column="organization" property="organization"
jdbcType="SMALLINT" />
</collection>
</resultMap> <select id="selectRolePage" parameterType="HashMap" resultMap="RoleRgiht">
select
ro.id, ro.name, ro.create_time, ro.update_time, ro.app_id,
ro.role_name,
ro.role_privilege,ri.id as rightId,ri.name as
rightName,ri.pid,ri.url,ri.type,ri.organization
from app_cms_role ro
left join app_cms_role_right rr on ro.id=rr.role_id
left join
app_cms_right ri on ri.id=rr.right_id
</selecy>
mybatis多对多映射的更多相关文章
- mybatis多对多映射【学生与课程】
1)如图 2)创建students.sql和courses.sql和middles.sql drop table middles; drop table students; drop table co ...
- 【Mybatis高级映射】一对一映射、一对多映射、多对多映射
前言 当我们学习heribnate的时候,也就是SSH框架的网上商城的时候,我们就学习过它对应的高级映射,一对一映射,一对多映射,多对多映射.对于SSM的Mybatis来说,肯定也是差不多的.既然开了 ...
- mybatis入门_一对多,多对多映射以及整合spring框架
一.一对多映射. 1.1 一对多映射之根据多的一方关联查询一的一方 示例:查询出具体的订单信息,同时也查询出来订单的用户信息. 引入的订单表如下所示: 框选出来的为具体的外键. 订单的Pojo类如下所 ...
- Mybatis(四) 高级映射,一对一,一对多,多对多映射
天气甚好,怎能不学习? 一.单向和双向 包括一对一,一对多,多对多这三种情况,但是每一种又分为单向和双向,在hibernate中我们就详细解析过这单向和双向是啥意思,在这里,在重复一遍,就拿一对多这种 ...
- java web(六):mybatis之一对一、一对多、多对多映射
前言: 百度百科: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...
- Mybatis学习(四)————— 高级映射,一对一,一对多,多对多映射
一.单向和双向 包括一对一,一对多,多对多这三种情况,但是每一种又分为单向和双向,在hibernate中我们就详细解析过这单向和双向是啥意思,在这里,在重复一遍,就拿一对多这种关系来讲,比如有员工和部 ...
- MyBatis学习(七)MyBatis关联映射之多对多映射
对于数据库中的多对多关系建议使用一个中间表来维护关系. 1.创建四张表,分别为用户表,商品表,订单表,中间表. DROP TABLE IF EXISTS `t_user`; CREATE TABLE ...
- Mybatis的多对多映射
一.Mybatis的多对多映射 本例讲述使用mybatis开发过程中常见的多对多映射查询案例.只抽取关键代码和mapper文件中的关键sql和配置,详细的工程搭建和Mybatis详细的流程代码可参见& ...
- java之mybatis之字段映射及多对一
1. 数据库中表的列名和实体类的属性名称不一致. 可以使用 resultMap来解决. <select id="findAll" resultMap="UserMa ...
随机推荐
- linux下的基本操作
1.怎么在Ubuntu下安装flash插件 2.Ubuntu14.04安装wineqq国际版 注: 安装包wine-qqintl下载 在/usr/share/applications/下可找到国际版q ...
- 页面超慢,zabbix却没报警
故障背景:网站页面打开速度非常慢 排查过程: 1.一开始用vmstat 看到procs下的r值稳定在5.6,由于这台服务器是12核24线程,并且cpu的wa很大,说明系统很轻松, 肯定不会报警了,那为 ...
- 修改Chrome临时文件位置
通过目录链接实现. mklink /D "C:\Users\ljq\AppData\Local\Google\Chrome\User Data" z:\temp http://we ...
- Windows环境下使用Clover四叶草引导双硬盘安装OSX 10.11.5原版镜像
作为一个穷逼大学生,想搞iOS开发 买不起Mac只能鼓捣鼓捣黑苹果啦........ 之前我的电脑通过变色龙引导的方式装了个OSX10.10和win8.1双系统,因为自学的是Swift语言之前装的OS ...
- 移动Web开发中遇见的问题以及解决方法(不断更新中)
20160524 问题:在使用des加密数据后,作为url参数传递发现,系统会把+自动变为空格,以至于解密的时候出现问题. 例如:uKsRUwdU6+83+J9WfgfflA== 传到服务端后 变为u ...
- ubuntu安装packet提示重复冲突问题
今天装个zip出现: dpkg: error processing archive /var/cache/apt/archives/libc6-dev-i386_2.19-0ubuntu6.5_amd ...
- (转)JQuery上传插件Uploadify使用详解
原文地址:http://www.cnblogs.com/oec2003/archive/2010/01/06/1640027.html Uploadify是JQuery的一个上传插件,实现的效果非常不 ...
- 练习1-16:修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本(C程序设计语言 第2版)
该书英文配套答案 Answer to Exercise -, page Revise the main routine of the longest-line program so it will c ...
- Java的UUID
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OS ...
- 原生Ajax封装随笔
XMLHttpRequest 对象用于和服务器交换数据.我们使用 XMLHttpRequest 对象的 open() 和 send() 方法: open(method,url,async) metho ...