【发布时间】:2023-03-17 03:44:01
【问题描述】:
我正在使用 Play Framework、JPA 和 MySQL,但我在 SQL 查询中遇到了concat() 函数的一些问题。当我在我的 MySQL GUI 中使用它时,它会输出连接列的正确值,但是当我在代码中将它与 JPA 一起使用时,它会返回 byte[],即一个字节数组。
我的实体:
@Entity
public class NumberData{
@javax.persistence.Id @GeneratedValue(strategy = GenerationType.AUTO)
Long Id;
@Column(unique = true)
private Long numbr;
@Column(unique = true)
private String somekey;
}
我的选择查询:
String query="SELECT concat(somekey,id) as uid,numbr from numberdata";
List<Object[]> numList = JPA.em().createNativeQuery(query).getResultList();
但是当我尝试打印它时,它给了我一个字节数组:
for (Object[] ob : numList) {
Logger.info("output "+ob[0]+""); //output [B@48927
}
我知道我可以使用new String(ob[0]) 将其转换为字符串,但是由于 MySQL GUI 给了我正确的结果,这是 JPA 的问题吗?如何直接从 MySQL 查询中获取字符串(varchar)?
【问题讨论】:
-
在 JPA 中怎么可能是个问题? JPA 原生查询只是通过 JDBC 传递您的查询,因此您依赖于数据存储,并获得 JDBC 驱动程序为您提供的内容...
标签: java mysql string jpa bytearray