Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate标准API和字段选择器?_Java_Sql_Hibernate_Hibernate Criteria - Fatal编程技术网

Java Hibernate标准API和字段选择器?

Java Hibernate标准API和字段选择器?,java,sql,hibernate,hibernate-criteria,Java,Sql,Hibernate,Hibernate Criteria,在Hibernate中,我喜欢CriteriaAPI,但它似乎不允许您为特定的实体类指定特定的列。例如,给定下表: log_entries id : PRIMARY KEY AUTO INCREMENT INTEGER timestamp : datetime log_level : varchar(25) originator : varchar(200) message : text 如何使用Criteria API编写以下SQL查询: SELECT

在Hibernate中,我喜欢CriteriaAPI,但它似乎不允许您为特定的实体类指定特定的列。例如,给定下表:

log_entries
    id : PRIMARY KEY AUTO INCREMENT INTEGER
    timestamp : datetime
    log_level : varchar(25)
    originator : varchar(200)
    message : text
如何使用Criteria API编写以下SQL查询:

SELECT
    timestamp,
    log_level
FROM
    log_entries
WHERE
    timestamp > '2013-06-05 00:00:00'
    AND
    originator <> 'com.me.myapp.SomeObject'
选择
时间戳,
对数级
从…起
日志项
哪里
时间戳>'2013-06-05 00:00:00'
及
发起人'com.me.myapp.SomeObject'

您需要使用ProjectionList来获取特定的列记录,请按照以下步骤操作

Criteria criteria  = session.createCriteria(LogEntries.class);

//select columns
ProjectionList columns = Projections.projectionList();
columns.add(Projections.property("timestamp"));
columns.add(Projections.property("log_level"));
criteria.setProjection(columns);

//conditions
Criterion timestamp = Restrictions.gt("timestamp", "2013-06-05 00:00:00");
Criterion originator = Restrictions.not(Restrictions.eq("originator", "com.me.myapp.SomeObject"));
LogicalExpression condition = Restrictions.and(timestamp, originator);

criteria.add(condition);
List results = criteria.list();