我有一张桌子
允许:
我现在在做什么
是进行返回权限对象的查询,然后以编程方式将值放入映射中
1-但我想知道是否可以制作 HQL(如果不可能,则制作本机 sql)来选择权限ID, 权限名称并将它们返回到地图中。
2-是否可以以一对多关系返回映射而不是以下列表或集合
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "perm_cat_map", joinColumns = { @JoinColumn(name = "perm_cat_id") }, inverseJoinColumns = { @JoinColumn(name = "permission_id") })
private List<Permission> permissions = new ArrayList<Permission>(0);
是否有可能有类似的东西:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "perm_cat_map", joinColumns = { @JoinColumn(name = "perm_cat_id") }, inverseJoinColumns = { @JoinColumn(name = "permission_id") })
private Map<String,String> permissions = new ArrayList<String,String>(0);
两个字符串在哪里权限ID, 权限名称.
Use the select new map
HQL 中的语法来获取 a 中每一行的结果Map
。看看下面的问题,它解决了这个问题:如何获取 Hibernate 查询结果作为列表或哈希图的关联数组 https://stackoverflow.com/q/925363/851811。
例如,以下 HQL:select new map(perm.id as pid, perm.name as pname) from Permission perm
将返回一个List
of Map
s,每个都有键“pid”和“pname”。
无法将关联映射到Map<String, String>
。可以使用以下命令将 Map 的键映射到列@MapKeyColumn http://download.oracle.com/javaee/6/api/javax/persistence/MapKeyColumn.html关联中的注释。请参阅这个问题,它也解决了这个问题,例如:JPA 2.0 Hibernate @OneToMany + @MapKeyJoinColumn https://stackoverflow.com/q/5076871/851811. Here http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Example_of_a_map_key_join_column_relationship_annotation另一个例子。
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "perm_cat_map",
joinColumns = { @JoinColumn(name = "perm_cat_id") },
inverseJoinColumns = { @JoinColumn(name = "permission_id") })
@MapKeyColumn(name="permission_id")
private Map<String, Permission> permissions = new HashMap<String,Permission>(0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)