我有一个 Spring+Hibernate 应用程序。对于某些操作,我需要使用本机 sql。我的问题是我在哪里可以存储 sql 查询。我不想对它们进行硬编码。我想知道现有的方法。我也想看例子,所以相关链接将不胜感激。
问问题
991 次
4 回答
1
您可以使用属性文件来存储您的 SQL。
例如,创建一个属性文件custom_sql.properties
:
allUsers=select * from users;
于 2013-10-30T13:46:43.483 回答
1
您可以使用 namedQueries,它可以在 hibernate 配置 xml 文件中声明。例如,您可以参考Mkyong。这回答了你的担忧。
于 2013-10-30T13:47:50.160 回答
1
您使用 sql 查询创建命名查询并添加到您的 hbm 文件或使用session.createSQLQuery()
利用
session.createSQLQuery("Your native query here");
或者
在您的文件中添加以下命名查询hibernate.cfg.xml
文件
<mapping resource="CustomNamedQueries.hbm.xml"/>
在春天,你应该像下面这样配置。
<property name="configLocations" value="classpath:hibernate.cfg.xml"/>
考虑模型对象中的以下注释。
@NamedNativeQuery
@NamedNativeQueries
于 2013-10-30T13:49:01.027 回答
0
为所需数据创建一个或多个数据库视图。然后,您可以将实体映射到该视图,就像它是一个表一样。
例如
@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{
}
于 2013-10-30T13:56:02.070 回答