Java 参数名称更改时Hibernate映射Xml的使用

Java 参数名称更改时Hibernate映射Xml的使用,java,hibernate,named-query,Java,Hibernate,Named Query,我正在使用 session.getNamedQuery("query1").setString("a", "123") session.getNamedQuery("query2").setString("b", "123") session.getNamedQuery("query3").setString("c", "123") 设置参数 <sql-query name="query1"> select * from table where a = :a <

我正在使用

session.getNamedQuery("query1").setString("a", "123") 
session.getNamedQuery("query2").setString("b", "123") 
session.getNamedQuery("query3").setString("c", "123") 
设置参数

<sql-query name="query1">
    select * from table where a = :a
</sql-query>

<sql-query name="query2">
    select * from table where b = :b
</sql-query>

<sql-query name="query3">
    select * from table where c = :c
</sql-query>

试试这个:

基本上,您需要为您的表创建一个java pojo模型对象,该对象具有您想要设置的属性。最后,您可以仅通过如上所示的一个命名查询来设置这些对象。希望它对您有所帮助

Java文件

session.getNamedQuery("myquery").setString("a", "123").setString("b", "123").setString("c", "123");
hbm.xml条目

<sql-query name="myquery">
    <return alias="table" class="com.tutorial.Table"/>
    <![CDATA[select * from table t where t.a = :a or t.b=:b or t.c=:c]]>
</sql-query>

当我只设置Query Query=session.getNamedQueryquery-one.setStringempFname,Kuntal时,它能工作吗;是的@maskapsiz它会成功的!但是,您必须将sql查询更改为。SQL查询需要从和调整到或。现在,您可以设置empFname或empLname,甚至可以同时设置两者。因为后面的命名查询或本机查询仅更改为sql查询。如果有任何问题,请告诉我。
session.getNamedQuery("query").setString("c", "123")
 <sql-query name="query-Once">
    <return alias="employee" class="com.kuntal.common.Employee"/>
    <![CDATA[select * from employee e where e.emp_fname = :empFname and e.emp_lname:empLname]]>
    </sql-query>
Query query = session.getNamedQuery("query-Once")
.setString("empFname", "Kuntal")
.setString("empLname","Ganguly");
session.getNamedQuery("myquery").setString("a", "123").setString("b", "123").setString("c", "123");
<sql-query name="myquery">
    <return alias="table" class="com.tutorial.Table"/>
    <![CDATA[select * from table t where t.a = :a or t.b=:b or t.c=:c]]>
</sql-query>