我知道这是另一个类似的问题,但我自己无法回答,这就是我写信给你寻求帮助的原因。
我尝试创建自己的@Query,并在两种情况下返回一个转换错误。我的猜测是服务有问题,但这是我的知识结束。
下面是我的代码:
>
主实体
@Data
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
private String city;
private Date startDate;
private boolean stat;
public User() {
}
public User(String name, String city, Date startDate, boolean stat) {
this.name = name;
this.city = city;
this.startDate = startDate;
this.stat = stat;
}
}
2.第二种模式
public class UserName {
private String firstname;
public UserName() {
}
public UserName(String firstname) {
this.firstname = firstname;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
}
3.第三种模式
public class UserCount {
private String city;
private int count;
public UserCount() {
}
public UserCount(String city, int count) {
this.city = city;
this.count = count;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
存储库
@Repository public interface UserRepository extends jparepository
@Query("select p from User p") //1.it's work
List<User> getAll();
@Query("select u from User u where u.name like %?1") //2.it's work
List<User> findByFirstnameEndsWith(String firstname);
@Query("select u.name from User u ") //3. don't work
List<UserName> getNameUsers();
// this SQL working in database console H2
// SELECT city, count(*) FROM USERS WHERE stat = true GROUP BY city
@Query("select u.city, count (u) from User u where u.stat = true group by u.city") //3. don't work
List<UserCount> getOwnQuery();
}
服务
@Service public class UserService{@AutoWired private UserRepository Repo
public List<UserName> getN (){
return repo.getNameUsers();
}
public List<UserCount> getC(){
return repo.getOwnQuery();
}
}
控制器
@Controller公共类MyController{
@Autowired
private UserRepository repo;
@Autowired
private UserService repoService;
@GetMapping("/") //1.it's work
ResponseEntity<List<User>> getAllCity(Pageable page){
return ResponseEntity.ok(repo.getAll());
}
@GetMapping("/s") //2.it's work
ResponseEntity<List<User>> getAllUsers(Pageable page){
return ResponseEntity.ok(repo.findByFirstnameEndsWith("Seba"));
}
@GetMapping("/f") ///3.don't work
ResponseEntity<List<UserName> >getUsersName(Pageable page){
return ResponseEntity.ok(repoService.getN());
}
@GetMapping("/c") ///4.don't work
ResponseEntity<List<UserCount> >getUsersCount(Pageable page){
return ResponseEntity.ok(repoService.getC());
}
}
它还在GitHub上添加了源代码
对不起,我没有添加错误代码
在@Query中使用带有new
关键字的构造函数获取列表
@Query("select NEW com.sub.model.UserName(u.name) from User u ")
List<UserName> getNameUsers();
并对列表
执行相同的操作
@Query("select NEW com.sub.model.UserCount(u.city, count(u)) from User u where u.stat = true group by u.city")
List<UserCount> getOwnQuery();
获取以下错误: 请帮我把结果设置到这个BO类中。
我有这门课: 这个问题: 但我有这个错误
我将spring与JPA一起使用,并尝试使用@query与SQL query一起执行查询,并尝试将结果映射到一个对象。我有不同的实体类和映射到其他dto,因为我不想要所有的列。获取以下错误 如何解决上述问题。 如果问题无法解决,那么我们可以使用spring data JPA在不使用@Query的情况下解决问题吗?怎么做? 使用JPQL::编辑:: 获取以下错误
io.github.openfeign.feign-hystrix->v10.10.1 io.github.openfeign.feign-form->V3.8.0 Feign Retryer错误-找不到能够从[java.lang.String]类型转换为[java.lang.class ]类型的转换器 更新应用程序的配置 向你致意,Manuag
我试图从数据库中获取交易列表,这是我面临的错误。 "跟踪":"org.springframework.core.convert.ConversionFailedException:无法从类型[java.lang.Object[]]转换为类型[com.wallet.sendmoney.entities.TransactionEntity]值'{1,1, null, null, KES, null,1