@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) @JoinTable(name = "_UserRole", joinColumns = { @JoinColumn(name = "tf_userId", referencedColumnName = "tf_userId") }, inverseJoinColumns = { // _UserRole 中的字段名, _Role 中的关联字段名 @JoinColumn(name = "tf_roleId", referencedColumnName = "tf_roleId") }) public Set<_Role> tf_Roles;
select group_concat(tf_roleId ,',', tf_roleName SEPARATOR '|||') from _Role得到的结果为: ‘0000,管理员|||0005,市级管理员|||0010,查询角色‘ ,里面一共有三行数据,每行用 ‘|||‘分隔,行中的字段用 ‘,‘号来分隔。
SELECT _t9035.tf_userId AS tf_userId, _t9035.tf_userName AS tf_userName, _t9035.tf_loginName AS tf_loginName, _t9011.tf_departmentId AS P__t9011___tf_departmentId, _t9011.tf_departmentId AS _t9011___tf_departmentId, _t9011.tf_name AS _t9011___tf_name, (SELECT GROUP_CONCAT(tf_roles0_.tf_roleId, ',', role1_.tf_roleName SEPARATOR '|||') FROM _UserRole tf_roles0_ INNER JOIN _Role role1_ ON tf_roles0_.tf_roleId = role1_.tf_roleId WHERE tf_roles0_.tf_userId = _t9035.tf_userId) FROM _User _t9035 LEFT OUTER JOIN _Department _t9011 ON _t9011.tf_departmentId = _t9035.tf_departmentId ORDER BY _t9011.tf_departmentId , tf_loginName以上查询查询语句为拼接而成,拼接过程比较复杂,这里就不讲解了。
常规功能和模块自定义系统 (cfcmms)—027开发日志(创建ManyToMany的column2)
原文:http://blog.csdn.net/jfok/article/details/50419027