当前位置: 首页 > 知识库问答 >
问题:

Hibernate自定义类型,而不是格式良好的order by子句

楚丰羽
2023-03-14

我的班级:

public class Concurso {
private Long id;
private String nome;
private Date ultimaModificacao;
// getter & setters
}

我的地图:

    <class name="Concurso" table="xyz">
     <id name="id" unsaved-value="null" type="long"> 
      <column name="ID"/>
     </id>
     <property name="nome"/>
     <property name="ultimaModificacao" type="MyDateTimeType">
      <column name="DT_ALTERACAO" not-null="true" sql-type="DATE"/>
      <column name="HR_ALTERACAO" not-null="true" sql-type="TIME"/>
     </property>
     <query name="find">
     from
     Concurso concurso
     order by
     concurso.ultimaModificacao desc
     </query>
    </class>
    

我的自定义类型“MyDateTimeType”将两列连接起来,并(在nullSafeGet方法中)构建一个java。util。日期要在“Concurso”实例中配置的对象

当我加载命名查询“find”并执行查询时。list(),生成的sql查询类似于:

select 
c.ID, c.DT_ALTERACAO, c.HR_ALTERACAO
from
xyz c
order by c.DT_ALTERACAO, c.HR_ALTERACAO desc

问题在于“订单”条款。只有第二列接收“desc”字。正确答案应该是:

select 
c.ID, c.DT_ALTERACAO, c.HR_ALTERACAO
from
xyz c
order by c.DT_ALTERACAO DESC, c.HR_ALTERACAO DESC

我能做些什么来解决这个问题?

共有1个答案

卞坚成
2023-03-14

您可以为此使用标准

List concursosList = sess.createCriteria(Concurso.class)
.add( Restrictions.like("nome", "F%")
.addOrder( Order.desc("DT_ALTERACAO") )
.addOrder( Order.desc("HR_ALTERACAO") )
.setMaxResults(50)
.list();

此条件将为列添加所需的过滤器。我希望这有帮助。

 类似资料:
  • Clang接受以下代码,但gcc拒绝它。 以下是错误消息:

  • 这段代码的格式肯定不正确,因为是在实例化点之后专门化的: 由于我强调的标准的一部分,它是不正确的: 函数模板、成员函数模板、或类模板的成员函数或静态数据成员的专门化可以在翻译单元内具有多个实例化点,并且除了上述实例化点之外,对于在翻译单元内具有实例化点的任何这样的专门化,翻译单元的末尾也被认为是实例化点。类模板的专门化在翻译单元中最多有一个实例化点。任何模板的专门化都可能在多个翻译单元中具有实例化

  • 为了搜索引擎优化的目的。。。。客户希望作者链接指向团队成员的个人主页,而不是默认的作者主页。。。。例如: 有一篇由用户a撰写的博客文章。作者链接现在指向: 但他们希望它指向 “我们的团队”是一个自定义帖子类型,用户a是其中的一个帖子。 我尝试了一些变通解决方案,但没有找到一个好的方法来建立作者和团队成员之间的关系。如果我能在选择作者时从自定义帖子类型中添加团队成员...这将解决我的问题,尽管我认为

  • 本文向大家介绍WordPress 3.0中的自定义帖子类型,包括了WordPress 3.0中的自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 本文与WordPress 3.0相关。此处发布的许多代码在以前的版本中将不起作用,并且某些信息可能会在较新的版本中更改。 WordPress已经在系统中内置了五种不同的内容类型。 帖子 这是标准的内容类型,通常是博客安装中使用最多的内容。帖子往往会

  • Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。

  • 存在多种方法来重新定义现有类型的行为以及提供新的类型。 重写类型编译 一个常见的需求是强制更改类型的“字符串”版本,即在create table语句或其他SQL函数(如cast)中呈现的版本。例如,应用程序可能希望强制呈现 BINARY 适用于除一个平台外的所有平台 BLOB 待渲染。在本例中,使用现有的泛型类型 LargeBinary ,是大多数用例的首选。但是为了更准确地控制类型,每个方言的编