在Hibernate Java中的两个日期之间获取用户数据

发布于 2025-01-25 00:51:14 字数 1977 浏览 0 评论 0原文

我有一个名为用户的冬眠实体。我想获取在两个日期间隔两个日期之间的用户列表。例如,我有一个日期D1,我想知道我的仇恨与我的deptate之间雇用的人。 这是我用户实体的冬眠文件的映射,

<class name="com.bam.model.User" table="USER">
        <composite-id class="com.bam.model.UserId" name="id">
            <key-property name="idUser" type="java.lang.String">
                <column name="ID_USER" not-null="true" precision="0" scale="30" sql-type="varchar"/>
            </key-property>
            <key-property name="idCompany" type="java.lang.String">
                <column name="ID_COMPANY" not-null="true" precision="0" scale="30" sql-type="varchar"/>
            </key-property>
        </composite-id> 
        <property name="gender" type="java.lang.String">
            <column name="GENDER" not-null="false" precision="0" scale="4" sql-type="varchar"/>
        </property>
        <property name="firstname" type="java.lang.String">
            <column name="FIRSTNAME" not-null="false" precision="0" scale="100" sql-type="varchar"/>
        </property>
        <property name="lastname" type="java.lang.String">
            <column name="LASTNAME" not-null="false" precision="0" scale="100" sql-type="varchar"/>
        </property>

        
</class>

这也是我用户实体的类。

@XmlRootElement(name = "user")
public class User implements Serializable {

    @XmlElement(name = "id")
    private UserId id;

    @XmlElement(name = "gender")
    private String gender;

    @XmlElement(name = "firstName")
    private String firstname;

    @XmlElement(name = "lastName")
    private String lastname;
}

我将用HQL语言编写的查询是:

Query query = session.createQuery("SELECT * FROM USER us oh WHERE   DATE_FORMAT(us.HI_DATE,'%dd-%mm-%YYYY') <= :from_date <= DATE_FORMAT(us.DEP_DATE'%dd-%mm-%YYYY') ");
query.setParameter( "from_date ", from_date );

但是它不起作用,有什么想法吗?

i have an hibernate entity called user.I want to get the list of users who are between two dates a date interval. Example, I have a date D1 and I want to know the people hired between my hiDate and my depDate.
Here is the mapping of the hibernate file of my user entity

<class name="com.bam.model.User" table="USER">
        <composite-id class="com.bam.model.UserId" name="id">
            <key-property name="idUser" type="java.lang.String">
                <column name="ID_USER" not-null="true" precision="0" scale="30" sql-type="varchar"/>
            </key-property>
            <key-property name="idCompany" type="java.lang.String">
                <column name="ID_COMPANY" not-null="true" precision="0" scale="30" sql-type="varchar"/>
            </key-property>
        </composite-id> 
        <property name="gender" type="java.lang.String">
            <column name="GENDER" not-null="false" precision="0" scale="4" sql-type="varchar"/>
        </property>
        <property name="firstname" type="java.lang.String">
            <column name="FIRSTNAME" not-null="false" precision="0" scale="100" sql-type="varchar"/>
        </property>
        <property name="lastname" type="java.lang.String">
            <column name="LASTNAME" not-null="false" precision="0" scale="100" sql-type="varchar"/>
        </property>

        
</class>

Here is also the class of my user entity.

@XmlRootElement(name = "user")
public class User implements Serializable {

    @XmlElement(name = "id")
    private UserId id;

    @XmlElement(name = "gender")
    private String gender;

    @XmlElement(name = "firstName")
    private String firstname;

    @XmlElement(name = "lastName")
    private String lastname;
}

The query that I will write with the hql language is this one :

Query query = session.createQuery("SELECT * FROM USER us oh WHERE   DATE_FORMAT(us.HI_DATE,'%dd-%mm-%YYYY') <= :from_date <= DATE_FORMAT(us.DEP_DATE'%dd-%mm-%YYYY') ");
query.setParameter( "from_date ", from_date );

but it doesn't work, any idea ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

⊕婉儿 2025-02-01 00:51:14

您可以尝试一下。

您需要格式化日期吗?

Query query = session.createQuery("FROM USER us WHERE :from_date between us.hiDate and us.depDate");
query.setParameter( "from_date ", from_date );

you can try this.

Do you need to format the dates?

Query query = session.createQuery("FROM USER us WHERE :from_date between us.hiDate and us.depDate");
query.setParameter( "from_date ", from_date );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文