如何使用findBy ..()方法为一条记录编写查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用findBy ..()方法为一条记录编写查询相关的知识,希望对你有一定的参考价值。
我有一个实体类User_Details
package vl.cybersecurityapplication.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "User_Details")
public class User_Details implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "UserId")
private int userId;
@Column(name = "FirstName")
private String firstName;
@Column(name = "LastName")
private String lastName;
@Column(name = "Password")
private String password;
@Column(name = "E_Mail")
private String eMail;
@Column(name = "Mobile_Num")
private int mobileNumber;
//getters and setters
}
这是我的repo界面
package vl.cybersecurityapplication.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import vl.cybersecurityapplication.model.User_Details;
public interface IUserRepository extends JpaRepository<User_Details, Long> {
public Integer findMobileNumberByName(String userName);
}
这是我的回购课程
package vl.cybersecurityapplication.repository;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import vl.cybersecurityapplication.model.User_Roles;
@Transactional
@Repository
public class UserRepository{
@Autowired
IUserRepository userRepository;
public Integer findMobileNumberByName(@PathVariable String lastName) {
int mobileNumber = userRepository.findMobileNumberByName("shaik");
System.out.println("Mobile Number : "+mobileNumber);
return mobileNumber;
}
}
我是Spring Boot和JPA的新手。在这里,我需要使用lastname在User_Details表中查询手机号码。即,从User_Details中选择Mobile_Num,其中LastName =“xyz”;有人能帮助我如何在我的repo类中编写这个查询。
答案
你可以写这样的。但你不能只获取MobileNumber。你会得到一个完整的对象。
List<User> findByLastName(String lastname).
如果你想只获得一些领域,那么你应该看看Projections
另一答案
无需使用本机查询。 JPA支持基于对象的查询。您可以使用List findByLastName(String lastname),它将在后端生成该查询并返回结果。
以上是关于如何使用findBy ..()方法为一条记录编写查询的主要内容,如果未能解决你的问题,请参考以下文章
如何在Oracle 10g中根据指定列将n条记录合并为一条记录? [复制]
Doctrine 的 findBy*() 中的 LIKE 和 % 通配符