小编Tho*_*zer的帖子

通过HQL获取孩子数量

我在父实体和子实体之间有一对多的映射.现在我需要找到与父母列表相关的每个父母的子女数量.我试图用HQL做这个,但我不知道如何在那里得到父母的列表.另外,我不知道如何返回实体本身,而不仅仅是它的ID.我当前的HQL查询是:

select new map(parent.id as parentId, count(*) as childCount) 
from Parent parent left join parent.children children
group by parent.id
Run Code Online (Sandbox Code Playgroud)

但这只返回ID,不会对特定父项进行过滤.

编辑 基于Pascal的答案,我已将查询修改为

select new map(parent as parent, count(elements(parent.children)) as childCount) 
from Parent parent
group by parent
Run Code Online (Sandbox Code Playgroud)

这确实有效,但速度极慢:在同一个数据库上30秒而不是400毫秒.

java orm hibernate hql

6
推荐指数
1
解决办法
4996
查看次数

Maven:找出是在32位还是64位JVM中运行

如何根据执行maven的VM是32位还是64位JVM来启用或禁用maven配置文件?

我试过这个:

<activation>
   <os>
       <arch>x86</arch>
   </os>
 </activation>
Run Code Online (Sandbox Code Playgroud)

或者amd64分别检测32/64位VM,但是在64位Windows上运行的32位VM上,这会激活64位配置文件.

java maven-2 jvm maven

6
推荐指数
1
解决办法
3759
查看次数

在列表中查找某些属性具有相等值的对象

给定一个对象列表(所有相同的类型),我如何确保它只包含某个属性的每个值的一个元素,即使equals()可能因为检查更多属性而为这些元素返回false?在代码中:

private void example() {
    List<SomeType> listWithDuplicates = new ArrayList<SomeType>();

    /*
     * create the "duplicate" objects. Note that both attributes passed to 
     * the constructor are used in equals(), though for the purpose of this 
     * question they are considered equal if the first argument was equal
     */
    SomeType someObject1 = new SomeObject1("hello", "1");
    SomeType someObject2 = new SomeObject1("hello", "2");

    List<SomeType> listWithoutDuplicates = removeDuplicates(listWithDuplicates)
    //listWithoutDuplicates should not contain someObject2
}

private List<SomeType> removeDuplicates(List<SomeType> listWithDuplicates) {
    /*
     * remove all but …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
2万
查看次数

为什么headerFileName_H

当我创建一个c ++头文件时,我声明头文件就像;

/*--- Pencere.h ---*/
#ifndef PENCERE_H
#define PENCERE_H
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我需要写下划线.

c++

4
推荐指数
1
解决办法
145
查看次数

java继承中的异常处理

看看下面的程序..

import java.io.*;
import java.rmi.*; 
class class1 
{
 public void m1() throws RemoteException 
{
 System.out.println("m1 in class1"); } }

 class class2 extends class1 
{
  public void m1() throws IOException 
{  
   System.out.println("m1 in class2");

} }

class ExceptionTest2 
 { 
public static void main(String args[])
 {
   class1 obj = new class1();
  try{ 
obj.m1(); 
} catch(RemoteException e){ System.out.println("ioexception"); }

} }
Run Code Online (Sandbox Code Playgroud)

编译时错误.....无法重写 m1() 方法

现在,如果我将父类中的 RemoteException 替换为 IOException ,反之亦然。然后就是编译了。

即使我使用同一级别的检查异常,任何其他检查异常组合在这里都不起作用。

现在我很困惑为什么覆盖仅在一种情况下发生,而不在其他情况下发生???我将非常感谢您的回答。

java

4
推荐指数
1
解决办法
1万
查看次数

使用泛型的类型依赖注入 - 它是如何工作的?

使用Spring,我可以获得当前使用此定义的特定类型的所有bean:

@Resource
private List<Foo> allFoos;
Run Code Online (Sandbox Code Playgroud)

Spring如何做到这一点?我认为泛型的类型信息在运行时被删除了.那么Spring如何知道Foo列表的类型并且只注入正确类型的依赖项?

为了说明:我没有包含其他bean的"List"类型的bean.相反,Spring创建该列表并将正确类型(Foo)的所有bean添加到此列表中,然后注入该列表.

java generics spring dependency-injection

1
推荐指数
1
解决办法
1466
查看次数

标签 统计

java ×5

c++ ×1

dependency-injection ×1

generics ×1

hibernate ×1

hql ×1

jvm ×1

maven ×1

maven-2 ×1

orm ×1

spring ×1