我试图使用spring data JPA的@query
注释在mysql数据库上执行一个自定义查询。
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| id | decimal(10,0) | NO | PRI | NULL | |
| first_name | varchar(20) | YES | | NULL | |
| last_name | varchar(20) | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
select last_name,count(last_name) as count from person group by last_name;
@Query("select p.lastName,count(p.lastName) as count from Person p group by p.lastName")
当代码编译并且web服务器启动良好时,当我尝试运行相关方法时,我得到
There was an unexpected error (type=Internal Server Error, status=500).
No aliases found in result tuple! Make sure your query defines aliases!; nested exception is java.lang.IllegalStateException: No aliases found in result tuple! Make sure your query defines aliases!
搜索这个错误显示spring数据JPA:在结果元组中找不到别名!确保您的查询定义了别名,这说明它是一个已修复的错误。所以我想我的问题是不同的
这些代码是
//imports
@Entity
@Table(name = "person")
public class Person{
@Id
Long id;
String firstName;
String lastName;
private Person(){}
//constructor
}
//imports
@Transactional
public interface PersonRepository extends CrudRepository<Person,Long>{
@Query("select p.lastName,count(p.lastName) as count from Person p group by p.lastName")
public List<CountPerson> countbylastname();
}
@Controller
public class PersonController{
@Autowired
PersonRepository repository;
@RequestMapping("/count")
@ResponseBody
public List<CountPerson> countbylastname(){
return repository.countbylastname();
}
}
public class CountPerson{
String lastName;
int count;
protected CountPerson(){}
public CountPerson(String lastName,int count){
this.lastName = lastName;
this.count = count;
}
}
快到了...(记住了,所以我希望它是完美的)你需要创建一个新的CountPerson(...)
select new com.mypackage.CountPerson(p.last_name, count(p.last_name)) from person p ...
JpaRepository只能轻松返回Person对象,但您可以自己在HQL中创建对象。
问题内容: 我正在尝试使用spring数据jpa 的注释在mysql数据库上执行自定义查询。 该表是 和MySQL中的查询是 在Spring数据jpa中实现此功能时。我正在使用这种逻辑, 创建另一个包含两个变量的类,并 使用@Query编写查询,该方法返回类的对象列表。 像spring数据jpa中的查询是 当代码编译且Web服务器正常启动时,当我尝试运行相关方法时,我得到 搜索此错误将显示spri
我得到了和这个问题一样的错误。但是,我知道这个问题(实际上是3个单独的问题)已经解决了。我使用的是sd-jpa1.11.1.release和sd-commons1.31.1.release。 以下是我的代码摘要:
下面从JPA查询获取Spring数据投影的方法对我不适用: https://stackoverflow.com/A/45443776/1005607
下面从JPA查询中获取Spring数据投影的方法对我不起作用: https://stackoverflow.com/a/45443776/1005607 Spring数据投影模型界面: 一切都和那个公认的答案一样。但是得到这个错误: 我不想在查询中使用,它很脏,依赖于我们将其抽象为JPA的Hibernate。
在程序中有一部分代码,用于执行查询: 数据集 () 表应该有大约 20000 条记录(行计数),但在程序内部,它在调试模式下说只有 20 条记录。 我在同一个数据库表上单独运行了脚本,该表在 SQL Server 连接字符串中使用,但在 SQL Server Management Studio 中,它按预期返回了 20000 条记录。 该脚本看起来像: 它是相同的脚本文本,代码也会执行该文本。 有