我有问题,需要帮助。
问题是我正在尝试使用 jdbctemplate 和映射获取查询的结果,该结果导致我的 File 类。
我的类文件包含3O个属性:10个长、字符串和日期类型的属性。
@Table (name = "UZTFILE", schema = "UTIC")
public class File implements Serializable {
private static final long serialVersionUID = 1L;
@Column (name = "UZTFILE_STRING1")
private String text1;
@Column (name = "UZTFILE_STRING2")
private String text2;
@Column (name = "UZTFILE_STRING3")
private String text3;
@Column (name = "UZTFILE_STRING4")
private String text4;
@Column (name = "UZTFILE_STRING5")
private String text5;
@Column (name = "UZTFILE_STRING6")
private String text6;
......
@Column (name = "UZTFILE_STRING10")
private String text10;
@Column (name = "UZTFILE_NUMBER1")
private Long number1;
@Column (name = "UZTFILE_NUMBER2")
private Long number2;
@Column (name = "UZTFILE_NUMBER3")
private Long number3;
@Column (name = "UZTFILE_NUMBER10")
private Long number10;
--getters and setters and constructors ---
我正在执行的查询:
List <File> files = new ArrayList <File> ();
// Query to execute
String query = "SELECT UZF1.UZTFILE_STRING1 AS INSTRUCCIONDECOBRO, UZF1.UZTFILE_STRING2 AS COUNTERPART, UZF1.UZTFILE_STRING3 AS CURRENCY VALUE AS UZF1.UZTFILE_NUMBER2, UZF1.UZTFILE_STRING4 AS FORMADECOBRO, UZF1.UZTFILE_STRING5 AS TIPOCUENTA, UZF1.UZTFILE_STRING6 AS NROCUENTA, UZF1.UZTFILE_STRING7 AS REFERENCE, UZF1.UZTFILE_STRING8 AS TYPEIDENTIFICATION, UZF1.UZTFILE_STRING9 AS NROIDENTIFICATION, UZF1.UZTFILE_STRING10 as NAMES FROM UZTFILE UZF1 ";
// Execution of the query
files = jdbcTemplate.query (query, new BeanPropertyRowMapper <> (File.class));
当执行查询时,它不会给我一个错误,一切都是正确的,但是当显示结果时,列出来为空,错误是由于我使用的查询使用别名,别名与File类的属性名称不匹配。
这就是我的问题或查询,因为我不能更改类属性的名称,也不能从查询中删除别名,因为使用了不同的查询,每个查询使用不同的别名。例如:
String query1= "SELECT UZF1.UZTFILE_STRING1 AS INSTRUCCIONDECOBRO, UZF1.UZTFILE_NUMBER2 AS AGE, MORE FIELDS WITH ALIASES..... FROM UZTFILE WHERE "condicion"";
//Query 2
String query2= "SELECT UZF1.UZTFILE_STRING1 AS NOMBRES, UZF1.UZTFILE_NUMBER2 AS SIZE, MORE FIELDS WITH ALIASES........ FROM UZTFILE Where "condicion";
问题出在无法识别别名的 BeanPropertyRowMapper 上,我无法修改类或查询的属性,是否有解决方案或您建议我做什么?
您要么需要使SQL统一,即在调用SQL时使用相同的别名,正如您所说,类中的@Column
映射需要匹配查询中返回的列。
另一个选项是使用查询(sql,rowMapper)
,其中您的rowMapperclass中每列表示的内容。
我有一个存储库,我正试图用它从序列中获取下一个值。我需要参数化序列名。 存储库查询类似于: @query(value=“select?1.nextval from dual;”,nativeQuery=true)字符串getSeqID(@param(“seqName”)字符串seqName);
问题内容: 在我的代码中,我正在使用。 然后,我执行该方法以填充准备好的语句的通配符。 在调用该方法并执行查询之前,我是否有办法检索(并打印出)最终查询?我只想将此用于调试目的。 问题答案: 这在JDBC API合同中没有定义,但是如果幸运的话,有问题的JDBC驱动程序可以通过调用来返回完整的SQL 。即 以我的经验,至少这样做是PostgreSQL 8.x和MySQL 5.x JDBC驱动程序。
问题内容: 我在Oracle数据库11g中使用Pl / SQL。 我正在编写一个将select语句作为参数(varchar2)的函数。该函数使用for循环遍历行并将格式应用于特定的列,并输出整个内容。基本上,我需要某种方式来获取列名,以便可以在顶部显示它们。我知道有多种方法可以对表执行此操作,但是由于传入了此查询,因此可能未选择所有列,可能已使用别名等。 有没有一种方法可以从此查询中选择列名? 理
问题内容: 根据MSDN,返回已执行查询的列元数据。我想知道是否有类似的方法将为给定查询提供表元数据?我的意思是涉及哪些表以及它具有什么别名。 在我的应用程序中,我得到了查询,并且需要以编程方式附加该子句。使用,我可以获取列元数据及其所属的表。但是,即使表具有别名,它仍然会返回真实的表名。有没有办法获取该表的别名? 以下代码显示如何获取列元数据。 这将为我正确提供列的详细信息。但是当我看到列时,它
问题内容: 我正在尝试连接到数据库,运行查询并打印出查询。到目前为止,我已经完成了工作,但是我需要获取输出并将其中的特定部分分配给 我正在使用log4jdbc监视我的查询。 此刻,我得到如下记录的输出: 我想分配给。我该怎么做呢? 问题答案: 通常,a 将为您提供查询(包括绑定参数)。但这取决于的实际实现(例如,使用PostgreSQL隐式实现)。 您提到为您带来回报。我对 log4jdbc 并不
问题内容: 我有一个proyect用于加载查询: 在“ SELECT_BY_USER_ID”上是正常的字符串查询。 我在jar外部有一个YML配置,用于加载不同的配置,并且我也想使用此YML来加载查询。 示例YML: 但是我不知道如何直接从@Query值中的文件中加载,我试图这样做: 我能怎么做?谢谢。 问题答案: 如果您需要从资源文件夹中加载SQL,可以尝试使用spring-data- sqlf