我已经使用注释创建了域对象,现在我需要编写一些sql查询,才能从多个表中获取/插入/更新数据。

有没有一种方法可以仅将hbm.xml文件中的sql查询保留为命​​名查询,因为域对象已经使用注释创建,而我不需要以xml方式进行。 如果可能的话,那么需要遵循什么步骤,请提出建议。

提前致谢。

===============>>#1 票数:2

是的,您可以在XML文件中使用以下标签

<sql-query name="Myquery">
   select * from YourTableName
</sql-query>

检查此示例http://www.java4s.com/hibernate/example-on-hibernate-named-queries/

===============>>#2 票数:2

首先在hbm.xml中定义一个sql查询,如下所示:

<sql-query name="persons"> 
  <return alias="person"  class="eg.Person"/> 
 Select person.NAME AS {person.name},person.AGE AS {person.age},person.SEX AS {person.sex} FROM PERSON person Where person.NAME LIKE :namePattern
</sql-query>

然后以陈述的名称获取它:

List people = sess.getNamedQuery("persons").setString("namePattern" ,namePattern)
.setMaxResults( 50 )
.list();

另一种方法是,不需要sql-query元素,直接编写Java代码:

列出猫= sess.createSQLQuery(

"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id ")
.addEntity("cat" , Cat. class)         // add entity
.addJoin("kitten" ,  "cat.kittens ")   // add related entity 
.list();

也许可以帮助您:)

  ask by Abhijit Deb translate from so

未解决问题?本站智能推荐:

1回复

对Spring JPA命名查询的本机SQL查询

我在下面查询。 当我在sql编辑器中执行上述查询时,我从zip表中获取zip,primary_city,纬度,经度,distance_in_km。 我需要在JPA存储库中使用相同的代码。我尝试使用命名查询,但它显示了验证失败的异常。此外,在我的实体类zip.java中,它仅包含zi
1回复

无法将子查询的SQL查询转换为Hibernate命名查询

我有两个表,我想使用两个表中都存在的两个字段从表A中选择在表B中引用的条目。 用于引用条目的两个字段是数字,因此下面的查询可以执行我想要的操作(但是由于乘法运算和表B很大,所以它很慢)。 我已成功将其映射到以下名为查询的HQL: 为了提高上述速度,我对SQL语句进行了如下修
1回复

Hibernate命名查询是否会阻止SQL注入攻击?

Hibernate的命名查询功能是否有助于防止SQL注入攻击? 我在hbm.xml文件中定义命名查询而不是注释。
1回复

SQL命名查询中的休眠变量架构名称

除了默认模式,对于某些SQL查询,我需要访问特定的模式。 问题在于,特定架构的名称对于不同环境是不同的。 细读之后,我发现使用此链接可以在变量中指定架构名称。 如果是这样,我有以下问题: 对于命名查询中的SQL查询,是否会这样做? 如何设置变量名称的值? 提前
1回复

Hibernate命名查询和Spring Data SQL注入

我想添加自动完成功能以在我的应用中进行搜索。 对于此功能,我使用了NamedQuery(“ userSuggest”)。 在JpaRepository中,我定义了一个带有一个参数的方法(“ userSuggest”)。 这是我的代码: 和 我通过传递用户输入数据+百分号作为
1回复

用Hibernate编写命名SQL查询的问题

我正在尝试使用Hibernate的命名SQL查询访问数据库FK,其想法是查询包含名称和companyId等的客户表。 CompanyId是commpany表的FK。 我写的查询如下: 我目前遇到的问题如下: 线程“主”中的异常org.hibernate.QueryParam
1回复

Hibernate命名查询或SQL Server存储过程

我需要进行命名查询或存储过程。 这是通过通过Hibernate附加到SQL Server的Java应用程序运行的。 我希望有一个存储过程,但是一个命名查询可能就足够了。 我在SQL Server中有一个具有XML类型列的表。 这本身并不重要,但是会引起问题。 我的Hibnera
1回复

命名查询使用

我已阅读命名查询。 我们可以在映射文件中使用<query>和<sql-query>进行命名查询。 我无法理解<query>标记和<sql-query>标记之间的区别。 什么时候我们必须使用<query>标记以及什么时候我们必须使用
1回复

具有大于或小于休眠的命名SQL查询中的值

我在休眠配置xml中使用带有命名查询的休眠3。 命名查询最初将日期与用户输入的日期匹配,并且工作正常。 但是,当我将等于('=')更改为小于('<=')时,出现了以下错误。 这是因为XML解析器不允许标记内容中包含“ <”或“>”。 但是,形成<=或&g
3回复

编写命名SQL查询并返回是否存在行的最佳方法?

所以我有这个SQL查询, 我打算这样使用: 但是我在SQL / JPA方面不是很坚强,并且想知道是否有更好的方法(或改进方法)。 例如,我应该写(从job_queue jq中选择jq.id)而不是星号吗? 编辑:此调用在我们的应用程序中对性能至关重要。 编辑:进行了