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 为Liferay输入日期的自定义查询_Java_Sql_Database_Liferay - Fatal编程技术网

Java 为Liferay输入日期的自定义查询

Java 为Liferay输入日期的自定义查询,java,sql,database,liferay,Java,Sql,Database,Liferay,我在使用日期输入执行自定义查询时遇到问题。 以下是我的sql: <sql id="MyEntityFinder.findByIns"> <![CDATA[ SELECT {EX_MyEntity.*} FROM EX_MyEntity WHERE (EX_MyEntity.myDate >= ? AND EX_MyEntity.myDate <= ?) ]]> </sql>

我在使用日期输入执行自定义查询时遇到问题。 以下是我的sql:

<sql
     id="MyEntityFinder.findByIns">
 <![CDATA[
     SELECT {EX_MyEntity.*}
     FROM EX_MyEntity
     WHERE
         (EX_MyEntity.myDate >= ? AND EX_MyEntity.myDate <= ?)
         ]]>
</sql>

= ? 和exu MyEntity.myDate
这是我的发现者MyEntityFinderImpl:

public class MyEntityFinderImpl extends BasePersistenceImpl<MyEntity> implements MyEntityFinder{

    public static final String FIND_BY_INS = "MyEntityFinder.findByIns";
    public List<MyEntity> findByIns(Date from, Date to, int begin, int end) throws SystemException{
    Session session = null;
    try {
        session = openSession();
        String sql = CustomSQLUtil.get(FIND_BY_INS);
        SQLQuery q = session.createSQLQuery(sql);
        q.setCacheable(false);
        q.addEntity("EX_MyEntity", MyEntityImpl.class);
        QueryPos qPos = QueryPos.getInstance(q);  
        qPos.add("%"+from+"%");
        qPos.add("%"+to+"%");
        return (List<MyEntity>) QueryUtil.list(q, getDialect(), begin, end);
    } catch (Exception e) {
        throw new SystemException(e);
    } finally {
        closeSession(session);
    }
}    
公共类MyEntityFinderImpl扩展BasePersistenceImpl实现MyEntityFinder{
公共静态最终字符串FIND_BY_INS=“MyEntityFinder.findByIns”;
公共列表findByIns(日期从、日期到、整数开始、整数结束)引发系统异常{
会话=空;
试一试{
session=openSession();
字符串sql=CustomSQLUtil.get(通过\u-INS查找\u);
SQLQuery q=session.createSQLQuery(sql);
q、 可设置缓存(假);
q、 附录(“EX_MyEntity”,MyEntityImpl.class);
QueryPos qPos=QueryPos.getInstance(q);
qPos.add(“%”+from+“%”);
qPos.添加(“%”到+“%”);
return(List)QueryUtil.List(q,getdialogue(),begin,end);
}捕获(例外e){
抛出新的系统异常(e);
}最后{
闭门会议(会议);
}
}    
}

下面是我如何从jsp页面调用它:

Calendar aMonthAgo = Calendar.getInstance();
aMonthAgo.set(Calendar.MONTH, aMonthAgo.get(Calendar.MONTH) - 1);
Calendar now = Calendar.getInstance();
List<MyEntity> monthly = MyEntityLocalServiceUtil.findByIns( 
                    new java.sql.Date(aMonthAgo.getTimeInMillis()),
        new java.sql.Date(now.getTimeInMillis()), 0,
        MyEntityLocalServiceUtil.getMyEntitysCount());
Calendar aMonthAgo=Calendar.getInstance();
aMonthAgo.set(Calendar.MONTH,aMonthAgo.get(Calendar.MONTH)-1);
Calendar now=Calendar.getInstance();
List monthly=MyEntityLocalServiceUtil.findByIns(
新的java.sql.Date(aMonthAgo.getTimeInMillis()),
新java.sql.Date(now.getTimeInMillis()),0,
MyEntityLocalServiceUtil.getMyEntityScont());

在尝试执行查询时,我得到了“java.sql.SQLException:data exception:invalid datetime format”,但我不明白原因。

请尝试以下操作:

在jsp中:
Timestamp Timestamp=新的时间戳(aMonthAgo.getTimeInMillis())

在查找器中:
qPos.add(时间戳)

此外,在sql查询中,我将在以下两种情况之间使用:


日期(EX_MyEntity.myDate)介于?还有?

非常感谢您的帮助!