hibernate critères de la requête pour le timestamp

J'ai une table qui contient une colonne de submitted_date(horodatage sans fuseau horaire). J'ai besoin de la liste de tous les enregistrements de la table ayant une date particulière en tant que soumis date. Mais ne pas prendre en compte le temps dans la base de données. J'ai récupérer les enregistrements à l'aide de critères de requête et de mise en veille prolongée. Comment ignorer le temps ici?

En fait, je passe une date à partir du côté client et a pour extraire les enregistrements ont la même date que submitted_date. Mais pas besoin de prendre en compte le temps.

    else if(extjsFilter.getField().equals("submittedDate")) {
                            String str_date=extjsFilter.getValue(); 
                            SimpleDateFormat format1 = new SimpleDateFormat("MM/dd/yyyy");
                            SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
                            Date date2 = format1.parse(str_date);
                            String datenew = format2.format(date2);
                            Date date = (Date)format2.parse(datenew);

                            if(extjsFilter.getType().equals("date"))
                            {
                                if(extjsFilter.getComparison().equals("gt"))
                                {
                                    Filter postDateFilterGT = getSession().enableFilter("jobFilterPostDateGT");
                                    postDateFilterGT.setParameter("postDateFilterGT", date);
                                }
                                if(extjsFilter.getComparison().equals("lt"))
                                {
                                    Filter postDateFilterLT = getSession().enableFilter("jobFilterPostDateLT");
                                    postDateFilterLT.setParameter("postDateFilterLT", date);
                                }
                                if(extjsFilter.getComparison().equals("eq"))
                                {
                                    Filter postDateFilterEQ = getSession().enableFilter("jobFilterPostDateEQ");
                                    postDateFilterEQ.setParameter("postDateFilterEQ", date);
                                }
                            }
}

Ci-dessus est mon code. Côté Client se fait à l'aide de extjs. Du côté serveur, le code de extjs filtrage d'un champ de date, c'est ça.

hibernate est donnée ci-dessous.

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.hiringsteps.ats.job.domain">
    <class
        name="Job"
        table="hs_job_master"> 

        <id name="id" column="job_id" unsaved-value="null">
            <generator class="sequence">
                <param name="sequence">hs_job_id_seq</param>
            </generator>
        </id>

        <property name="submittedDate" column="submitted_date"/>                

        <filter name="jobFilterPostDateGT"><![CDATA[submitted_date > :postDateFilterGT]]></filter>
        <filter name="jobFilterPostDateLT"><![CDATA[submitted_date < :postDateFilterLT]]></filter>
        <filter name="jobFilterPostDateEQ"><![CDATA[:postDateFilterEQ = submitted_date]]></filter>  
    </class>    

    <filter-def name="jobFilterPostDateGT">
        <filter-param name="postDateFilterGT" type="date"/>
    </filter-def>
    <filter-def name="jobFilterPostDateLT">
        <filter-param name="postDateFilterLT" type="date"/>
    </filter-def>
    <filter-def name="jobFilterPostDateEQ">
        <filter-param name="postDateFilterEQ" type="date"/>
    </filter-def>
</hibernate-mapping>

J'ai deux enregistrements dans la base de données ayant submitted_date comme ci-dessous.

2013-02-15 00:00:00

2013-02-15 13:04:42.787

Quand je fais une requête pour filtrer les enregistrements ayant la date d'aujourd'hui, le premier enregistrement soumis date
2013-02-15 00:00:00 est seulement récupéré.

c'est parce que l'objet date, j'ai utilisé de la requête, a aussi cette valeur
'2013-02-15 00:00:00'

Comment vais-je faire une requête qui ignore le temps?

  • pouvez-vous expliquer ce qu'entendez-vous par "Mais ne pas prendre en compte le temps dans la base de données"?
  • quel avez-vous essayé encore. votre question n'est pas claire
  • Pas besoin de considérer le temps de quoi? L'heure du système de bases de données ou de temps? Le temps d'exécution?
  • mise à jour de la question une fois de plus
  • Quelqu'un peut m'aider?
  • j'ai en face même problème que j'ai pour le résoudre, trouver le lendemain de la date et de récupérer les données de GE startDate et LT Et de la date de fin.

InformationsquelleAutor 1355 | 2013-02-15