Критерии гибернации с проекцией не возвращают сущность, на которой реализованы критерии

Я использую пружинную гибернацию и класс поддержки HibernateDAOSsupport. У меня есть две таблицы, сопоставленные друг другу по принципу «один ко многим». Я реализую следующие критерии

 DetachedCriteria criteria = getCriteria( "a" )
        .setProjection( Projections.projectionList()
                .add( Projections.groupProperty("a.id" ) )
                .add( Projections.count( "a.id" ), "count" )
                )
        .createCriteria( "huApps", "hu")
        .addOrder( Order.desc( "count" ) )
        ;

это работает хорошо и создать следующий запрос

select
        this_.id as y0_,
        count(this_.id) as y1_ 
    from
        apps this_ 
    inner join
        huapps huapp1_ 
            on this_.id=huapp1_.appid 
    group by
        this_.id 
    order by
        y1_ desc

В результате он возвращает список объекта [] . Но я хочу, чтобы он вернул Список < Приложение > (Приложение - это класс, на котором я реализовал/создал критерии). Я хочу, чтобы он создал запрос

select
 this_
    from
        apps this_ 
    inner join
        huapps huapp1_ 
            on this_.id=huapp1_.appid 
    group by
        this_.id 
    order by
        y1_ desc

Пожалуйста, помогите мне в написании правильных критериев. Я также пытался с sqlProjection () , но даже это не сработало. Есть ли способ, которым я могу достичь этого?

-121--1511032- Как вызвать C++ с Java? Я хотел вызвать метод C++ с Java. Я читал о JNI, но я не получаю, как получить все файлы библиотеки и где я должен сохранить его, чтобы запустить программу из командной строки. Есть ли...

Я хотел вызвать метод C++ из Java. Я читал о JNI, но я не получаю, как получить все файлы библиотеки и где я должен сохранить его, чтобы запустить программу из командной строки.

Есть ли способ вызвать метод C++ из самого Eclipse, потому что я использую его для запуска классов Java.

27
задан jonsca 29 September 2011 в 06:36
поделиться

1 ответ

Назовите код C++ из программы Java.

Следуют ниже Шага

  1. , пишут код Java
    • , что contian объявление собственных методов
    • совместно использованная библиотека загрузки содержит собственный метод вызова собственного кода
public class Sample1 
{
     public native int intMethod(int n);
     public static void main(String[] args)
     {
          System.loadLibrary("Sample1");
          Sample1 sample = new Sample1();
          int     square = sample.intMethod(5);
          System.out.println("intMethod: " + square);
     }
}
  1. Компиляция, код Java

javac Sample2.java

  1. создает заголовочный файл C++

javac Sample2.java

  1. , Пишут код C++
#include "Sample1.h"
#include <string.h>

JNIEXPORT jint JNICALL Java_Sample1_intMethod
  (JNIEnv *env, jobject obj, jint num) {
   return num * num;
}

void main(){}
  1. код C++ компиляции

cc -G Sample1.c -o Sample1.so

  1. Выполнение программа

java Sample1

Java
0
ответ дан 28 November 2019 в 05:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: