当前位置: 首页 > 知识库问答 >
问题:

@对DTO的查询结果导致spring数据jpa中的构造函数错误

佟翰林
2023-03-14

在我的JpaRepository中,我有一个如下的问题

@Query("select new com.x.airlinesystem.dto.ticket.TicketPriceDTO((select count(t) from Ticket t where t.flight=:flightId and t.ticketStatus=:ticketStatus),f.capacity,f.price) from Flight f where f.id = :flightId")
TicketPriceDTO findPriceInfo(@Param("flightId") Long flightId,
        @Param("ticketStatus") TicketStatus ticketStatus);

我的dto就像下面一样;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class TicketPriceDTO implements Serializable {

    private Integer sold;
    private Integer capacity;
    private BigDecimal price;
}

最后,我的TicketStatus枚举是;

public enum TicketStatus {
    SOLD, RETURNED
}

当我编译项目时,我得到如下错误;

共有2个答案

夏谦
2023-03-14
// Hi you can try to change Integer with Long

private Integer sold;
private Integer capacity;
private BigDecimal price;

//to replace with 

private Long sold;
private Integer capacity;
private BigDecimal price;

//I can see Expected arguments are: long, int, java.math.BigDecimal is looking for long type
宋原
2023-03-14

只是直觉,但确实如此

回来多久?

也许改变私有整数就足够了 私人长期出售

 类似资料:
  • 我正在尝试使用neo4j构建一个推荐引擎,并使用spring-data-neo4j作为持久层。我发现spring数据执行的cypher查询会给出结果,但是对于重复的对象,使用相同的数据集在neo4j浏览器上执行的相同查询会产生预期的结果。 下面是执行的查询(我通过启用调试获得)匹配(u:User)-[r:RATED]-(m:Movie)-[:HAS\u Movie]-(g:Genre)-[:HAS

  • 我有一个Employee实体类,它有许多列。我想从这个类中获取一些列,因此我使用了DTO。我创建了一个新的BaseEmployee类,并在EmployeeRepository中编写了查询。但当我尝试运行应用程序时,我会遇到这样的错误:“类中没有合适的构造函数错误”。 我的dto类: Jpa仓库: 错误:

  • 我有一个问题,就是对数据库的查询不能得到正确的结果。 在带有此查询的工作台中:

  • 我想在我的查询中调用一个函数。例如: 在我的myTableRepository中,我可以执行以下操作: 但向语句添加函数调用不起作用: 有没有办法让它在JPQL中工作? 我的错误:

  • 我试图连接2个表,并通过构造函数查询将结果添加到一个新对象。并非左表中的所有ID都在右表中。因此,通过外部联接,我希望从左表中获得所有结果,并从右表中获得结果,如果没有结果,则为null值。 我如何解决这个问题,是否可以让第二个参数是可选的?因为参数二是一个对象,这将自动解析为空值,解决了我的问题。 我在pgadmin中重新创建了查询,并得到了预期的结果。通过移除左边的外部联接(以及object中

  • 我有3个实体在我的数据库。实体A具有主密钥PK-A,实体B具有主密钥PK-B,实体C具有主密钥PK-C。 实体A与实体B具有1对多关系,实体B与实体C具有1对多关系 我想在Spring Data JPA中基于PK-A(实际上是实体B中的外键)查询实体C。有可能吗? 但这行不通。还有什么建议我可以试试吗?