Spring Boot Jpa 获取数据库中对应的结果集

在很多时候,我们并不是想要查询到数据库中所有的列内容,而是中间特定的列对应的内容,使用Spring boot Jpa实现这类查询需要下面的步骤:

首先需要一个实体类, 比如

@Table(name = "LoginLog")
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class LoginLog {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name = "id", columnDefinition = "bigint", nullable = false, unique = true)
    Long id;

    @Column(name = "userId", columnDefinition = "bigint")
    Long userId;

   @Column(name = "ip", columnDefinition = "varchar(20)", nullable = false)
    String ip;

   @Column(name = "address", columnDefinition = "varchar(50)")
    String address;

   @Column(name = "create_time", columnDefinition = "datetime default now()")
    String create_time;

}

上面对应的信息有id, userId, ip, address, create_time, 如果我只想要ip, address, create_time, 那么我需要重新定义一个接口, 接口中间是实体类对应的getter!!

public interface LoginLogInfo {
    /*
    自定义查询结果集 获取用户的登录日志
     */
     String getIp();

     String getAddress();

     String getCreate_time();

}

定义好这个接口之后,我们可以直接以返回类型的形式使用这个接口

@Query(value = "SELECT ip, address, create_time FROM login_log WHERE user_id=:user_id", nativeQuery = true)
List<LoginLogInfo> findAllByUserId(@Param("user_id") Long user_id);

这样返回的结果就是我们需要的内容了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值