小弟配置的是 角色 和 权限的 多对多,代码如下 。大侠帮帮忙权限:Resource 大致如下@Entity
@Table(name = "TBL_RESOURCE", catalog = Constants.DB_NAME)
public class Resource {
........
public Set<role> roles ;
ManyToMany(mappedBy = "resources" , fetch = FetchType.EAGER)
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
........
}
权限:role 大致如下
@Entity
@Table(name = "TBL_ROLE", catalog = Constants.DB_NAME)
public class Role { private Set<Resource> resources = new HashSet<Resource>() ; @ManyToMany(targetEntity = Resource.class, fetch = FetchType.EAGER)
@JoinTable(
name = "TBL_ROLE_RESOURCE",
joinColumns = @JoinColumn(name = "ROLE_ID"),
inverseJoinColumns = @JoinColumn(name = "RESOURCE_ID"))
public Set<Resource> getResources() {
return resources;
} public void setResources(Set<Resource> resources) {
this.resources = resources;
}}配置就是这些了。启动没问题 , 但是小弟查询的时候出现如下问题:
String hql = "FROM Resource" ;
createQuery(hql).list() ;这样子查询就说 resource is not mapped ,,,,
小弟 实在没办法了 。。找了N久了 。。 。。帮帮忙。
@Table(name = "TBL_RESOURCE", catalog = Constants.DB_NAME)
public class Resource {
........
public Set<role> roles ;
ManyToMany(mappedBy = "resources" , fetch = FetchType.EAGER)
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
........
}
权限:role 大致如下
@Entity
@Table(name = "TBL_ROLE", catalog = Constants.DB_NAME)
public class Role { private Set<Resource> resources = new HashSet<Resource>() ; @ManyToMany(targetEntity = Resource.class, fetch = FetchType.EAGER)
@JoinTable(
name = "TBL_ROLE_RESOURCE",
joinColumns = @JoinColumn(name = "ROLE_ID"),
inverseJoinColumns = @JoinColumn(name = "RESOURCE_ID"))
public Set<Resource> getResources() {
return resources;
} public void setResources(Set<Resource> resources) {
this.resources = resources;
}}配置就是这些了。启动没问题 , 但是小弟查询的时候出现如下问题:
String hql = "FROM Resource" ;
createQuery(hql).list() ;这样子查询就说 resource is not mapped ,,,,
小弟 实在没办法了 。。找了N久了 。。 。。帮帮忙。
解决方案 »
- 关于端口8080被占的问题,求解
- 谁有how tomcat works的示例代码?
- 一定要子jdk1.4下开发webservice,如何选择框架
- struts中标签库位置问题
- 如何在B/S结构下,把附件自动下载到客户端的机器上
- JasperReport的SubReport怎么用的?
- 请问jsp调用ejb,ejb是用weblogic7+jbuilder7并由jbilder部署到upload目录下同,帮我,谢谢
- 一些设计问题?
- org.springframework.beans.factory.BeanCreationException:
- 实现用http请求对接spring mvc接口
- STRUTS2 的问题:如何配置一个默认的包名称,在struts.xml里面可以写下的类名
- 怎么取数据库的中文变问号
ManyToMany(mappedBy = "resources" , fetch = FetchType.EAGER)
你只有Role 的注解中有@JoinTableResource实体中 getRoles()方法上面除了要@ManyToMany注解外,也要@JoinTable
并将joinColumns 和 inverseJoinColumns属性的值调换一下。与Role中的相反。
private Set<Authority> authority;权限表中没有声明Role(没有该属性)