gpt4 book ai didi

mysql - 选择最大 native 查询 hibernate

转载 作者:行者123 更新时间:2023-11-29 16:58:44 25 4
gpt4 key购买 nike

我正在尝试使用带有 @Query 注释的 native 查询来获取表中列的最大值

我尝试从这里的示例中得出它:https://www.baeldung.com/spring-data-jpa-query

 @Query(value = "SELECT max(i.sequence) " +
"FROM invoices as i " +
"WHERE i.fleet_id = ?1", nativeQuery = true)
Long findMaxSequence(String fleetId);

我也尝试过:

@Query(value = "SELECT max(i.sequence) " +
"FROM invoices as i " +
"WHERE i.fleet_id = :fleetId", nativeQuery = true)
Long findMaxSequence(@Param("fleetId") String fleetId);

当我将我的方法称为:

long maxSeq = invoiceRepository.findMaxSequenceForFleetId(invoice.getFleetId());

我收到一个NullPointerException。有什么想法吗?

Invoice 实体如下所示:

@Entity
@Table(name = "invoices"}
public class Invoice implements Serializable {


@Id
private String id;

@Column
private long sequence;

@Column(length = 12)
private String fleetId;

// ...
}

最佳答案

该问题是由于数据库为空,因此查询返回 null

和基本类型(例如long)不能分配给空值。奇怪的是编译器没有提示..

我修改了我的代码如下:

Long maxSeq = invoiceRepository.findMaxSequenceForFleetId(invoice.getFleetId());
if(maxSeq == null){
maxSeq = 0L;
}

关于mysql - 选择最大 native 查询 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52409834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com