当前位置: 首页 > 面试题库 >

如何返回地图 与HQL

公良鸿禧
2023-03-14
问题内容

我有一张桌子

权限

  • ID
  • 名称
  • 描述

我现在正在做的是使查询返回一个权限对象,然后以编程方式将值放入地图中

1-但我想知道是否有可能使HQL(或本地sql,如果不可能的话)选择 permission_idpermission_name
并在地图中返回它们。

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);

其中两个字符串分别是 permission_idpermission_name


问题答案:
  1. 使用select new mapHQL中的语法获取中的每一行的结果Map。让我们看一下解决该问题的以下问题:如何以list或hashmap的关联数组获取hibernate查询结果。例如,下面的HQL:select new map(perm.id as pid, perm.name as pname) from Permission perm将返回ListMapS,每一个与键“PID”和“PNAME”。

  2. 无法将关联映射到Map<String, String>。可以将Map的键映射到@MapKeyColumn关联中带有注释的列。例如,请参阅此问题,该问题也解决了该问题:JPA 2.0 Hibernate @OneToMany+@MapKeyJoinColumn。这是另一个例子。

    @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 permissions = new HashMap (0);



 类似资料:
  • 问题内容: Go具有非常整洁的多个返回值范例。但是它看起来和使用具有相同符号的不同机制。这是一个简单的示例: 在上面的示例中,给出错误为返回两个值,而和-两个表达式都正常工作而没有任何错误。为什么会有不同的行为? 问题答案: 在地图,数组或切片上使用内建的获取,并且还允许一个 或 两个变量。用户定义的函数和方法不是这种情况。如果一个函数声明了两个返回值,则必须告诉他们如何处理这两个返回值,或者忽略

  • 这个问题应该与任何有兴趣了解标准java对象版本和JDK版本之间关系以及如何回滚您的java版本的人相关。 所以:我如何回滚我的java.util.Map对象的一个版本?我肯定我也必须回滚其他对象。 我正在尝试遵循这些说明(https://cloud.google.com/solutions/mobile/mobile-firebase-app-engine-flexible),当我尝试让mave

  • 我有MainActivity上有一个片段,当用户点击片段时,用户会导航到另一个片段,在最后一个片段上有一个按钮来启动谷歌地图导航,这是代码: 问题是,在地图启动后,我希望用户在按下back时返回到我的应用程序,而不是Launcher。 有没有办法做到这一点。 这是我的完整代码: 主体活动 原木

  • 问题内容: 我有一个如下定义的可连接pthread运行器函数: 该线程应该加入主线程。 每当我通过Valgrind运行程序时,都会出现 以下泄漏 : 我检查了手册页中的pthread,其中说: 奇迹般地,当我用return语句替换pthread_exit()时, 泄漏消失了 。 我的实际问题有三点: 有人可以解释为什么return语句没有泄漏吗? 相对于从线程退出,两个语句之间是否存在一些根本区别

  • 情况: > 在按钮上的第一个片段,我想打开带有部分的第二个片段 在第二个片段上,我可以创建新部分(或使用已存在的),然后在列表项上单击打开第三个片段 在第三个片段上,我可以编写新服务(或使用已存在的服务),然后单击按钮返回第一个片段 并显示部分(来自第二个片段)和服务(来自第三个片段) 我的想法是使用片段。在第二个片段上设置参数(bundle),并将其传输到第三个片段 我应该如何正确地将变量从Al

  • 问题内容: 当我尝试在片段上显示地图时,它返回空指针异常。我已将所有权限添加到清单中。我将片段文件附加为其XML文件和log cat Chatffragment.java 其XML LOGCAT 第55和70行是googleMap = mapFrag.getMap(); initilizeMap(); 问题答案: 您必须等到地图加载完毕…。 编辑 检查编辑代码,使用ChildFragmentMan