Java 本机sql查询位置

Java 本机sql查询位置,java,sql,spring,hibernate,Java,Sql,Spring,Hibernate,我有一个Spring+Hibernate应用程序。对于某些操作,我需要使用本机sql。我的问题是在哪里可以存储sql查询。我不想硬编码它们。我想知道存在的方法。我还想看看例子,所以相关的链接将不胜感激 您可以使用属性文件来存储SQL 例如,创建一个属性文件custom\u sql.properties: alluser=select*from users; 您可以使用namedquerys,它可以在hibernate配置xml文件中声明。例如,您可以参考。这就回答了您的问题。您可以使用sql查询

我有一个Spring+Hibernate应用程序。对于某些操作,我需要使用本机sql。我的问题是在哪里可以存储sql查询。我不想硬编码它们。我想知道存在的方法。我还想看看例子,所以相关的链接将不胜感激

您可以使用属性文件来存储SQL

例如,创建一个属性文件
custom\u sql.properties

alluser=select*from users;

您可以使用namedquerys,它可以在hibernate配置xml文件中声明。例如,您可以参考。这就回答了您的问题。

您可以使用sql查询创建命名查询,并将其添加到hbm文件中,或者使用
session.createSQLQuery()

使用

在您的
hibernate.cfg.xml
文件中添加以下命名查询文件

<mapping resource="CustomNamedQueries.hbm.xml"/>

为所需数据创建一个或多个数据库视图。然后可以将实体映射到此视图jast,就像它是一个表一样

e、 g


你说我不想硬编码是什么意思?我希望您认识到,查询中的更改需要再添加几行代码,以从结果集中提取结果并填充java对象。我的意思是,我不想将查询放入java代码中。如果spring支持,存储过程是存储sql查询的好方法。我不知道-我不使用它。@mvb13,也就是说,继续使用旧的.Store过程+hibernate=许多属性文件具有键和值的格式。例如,searchAllUserSQL=select*from users。您可以从属性文件中读取感兴趣的sql,将其命名为customSQL.properties,然后在操作类或更好的服务类中执行它。这不是我想要的。我只需要知道在我的应用程序中哪里可以存储sql查询。
<mapping resource="CustomNamedQueries.hbm.xml"/>
<property name="configLocations" value="classpath:hibernate.cfg.xml"/>
@NamedNativeQuery
@NamedNativeQueries
@Entity
@Table(name = "customers")
public Class Customer{

   @OneToOne
   private CustomerSummaryData summaryData;
}

@Entity
@Table(name = "customer_summary_Data")//actually a view based on your complex SQL
public class CustomerSummaryData{

}