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

Hibernate:Createsqlquery。。获取实体的某些列时出错

帅博远
2023-03-14

在hibernate中,我编写了一个搜索表单win Swing。为此目的:

  1. 我的实体A有10个字段,但在这个搜索中,我只需要相同实体的5个字段/列

选择cli.field1,cli.field2,cli.field3,cli.field4cli.field5从sells.customers

<代码>。加法(实体类)

问:在SQL原生查询中,我如何告诉hibernate只返回这五列或字段,但使用前面提到的相同实体。

共有2个答案

彭畅
2023-03-14

如果您为实体创建了额外的构造函数,您应该能够执行类似的操作,但仅使用这些字段-因此,假设您只想从Person表中查询名字和姓氏,它将如下所示:

public Person(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
}

然后,您的查询可能类似于此:

SELECT new Person(p.firstName, p.lastName) FROM Person p WHERE p.lastName = :lastName

更多示例可以在Hibernate教程中直接找到

咸皓
2023-03-14

谢谢你的提示。。。幸运的是,我做了一些改变:

>

SQLQuery查询=get货币会话(). createSQLQuery(sqlQuery);

下一行是:

<代码>返回查询。setResultTransformer(Transformers.aliasToBean(entityClass))。列表()

对于这一行,我强制返回具有entityClass类型的项目,无论我是否只选择了五列。列表的每一行都将有一个entityClass对象,其中只有五个属性,并提取了数据。其余属性(未在主查询中选择)为空。

 类似资料:
  • Javers v5.6.3 我有一个父实体,其中包含一系列子实体。当我区分两个父母列表,发现一个孩子有变化时,我需要知道哪个父母包含变化的孩子。 我的实体: 我想要区分的是: 为了简洁起见,切换到Groovy: 我是如何区分的: 输出: 我的问题是: 如何发现哪个父级包含子级/c1? 除了我有一个老板集合之外,这类似于应该检测薪酬变化()示例。使用该示例,给定具有不同下属的老板列表,如何找出的老板

  • 本文向大家介绍keras 获取某层输出 获取复用层的多次输出实例,包括了keras 获取某层输出 获取复用层的多次输出实例的使用技巧和注意事项,需要的朋友参考一下 官方文档很全面,搜索功能也很好。但是如果你想单独实现某个功能,根本无从搜寻。于是我写了这个笔记。从功能出发。 两个tensor经过一个layer实例会产生两个输出。 这个代码有错误,因为最后一行没有指定lstm这个layer实例的那个输

  • 本文向大家介绍jQuery获取table下某一行某一列的值实现代码,包括了jQuery获取table下某一行某一列的值实现代码的使用技巧和注意事项,需要的朋友参考一下 jQuery获取table下某一行某一列的值实现代码 最近需要获取到某个table下每一行某一列的值,用jQuery做了一会儿,过程如下,仅供参考:  这个大的div下有若干个table,现在我需要获取每个table下某一行某一列的

  • 问题内容: 我想获取某个Java进程的堆转储(可能的内存泄漏)。但是,当我启动jvisualvm工具时,看不到任何正在运行的Java进程。 我已经在Google上搜索了有关此内容,并且已经找到了几篇文章,说您必须使用启动jvisualvm工具时所使用的同一JDK运行Java进程,以便它能够看到它们。但是,据我所知,情况已经如此。我正在本地做所有事情(我可以​​远程访问机器)。 需要考虑的几件事:

  • 问题内容: 是否有一些函数可以从某些列表中返回N个最高元素? 即,如果返回单个最高元素sth。就像会给我返回10个最高数字的列表(如果较小则更少)。 或获得这些有效的简便方法是什么?(除了明显的规范实现;而且,没有这样的事情需要首先对整个列表进行排序,因为与规范解决方案相比效率不高。) 问题答案: :