Spring JPA - 获取所选列的数据

时间:2017-07-06 10:40:20

标签: java spring hibernate jpa

使用Spring JPA存储库

public String getNextULAID();
 // Selecting particular columns from a table
  @Query(value="select dbts,firstName from user_details  
  where ULA_ID= :ulaID and DEL_FLG = 'N'" ,nativeQuery=true)

  public UserDetails fetchUser(@Param("ulaID")String ulaId);
}

引发错误

{
    "timestamp": 1499336001602,
    "status": 500,
    "error": "Internal Server Error",

    "exception": "org.springframework.dao.InvalidDataAccessResourceUsageException",

    "message": "could not extract ResultSet; SQL [n/a]; 
    nested exception is org.hibernate.exception.SQLGrammarException: 
    could not extract ResultSet",

    "path": "/viewProfile/1"
}

但是,如果我从数据库中选择所有数据,那么它的工作正常

public String getNextULAID();
  // selecting all records
  @Query(value="select * from user_details  
  where ULA_ID= :ulaID and DEL_FLG = 'N'" ,nativeQuery=true)
  public UserDetails fetchUser(@Param("ulaID")String ulaId);

}

这是我的实体......

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

// End of user code

 @Entity
 @Table(name="user_details")
 public class UserDetails {
/**
 * Description of the property dbts.
 */
private Integer dbts;

/**
 * Description of the property ulaId.
 */
@Id
private String ulaId = "";

/**
 * Description of the property firstName.
 */
private String firstName = "";

/**
 * Description of the property lastName.
 */
private String lastName = "";

/**
 * Description of the property emailId.
 */
private String emailId = "";

/**
 * Description of the property mobileNo.
 */
private String mobileNo = "";

/**
 * Description of the property gender.
 */
private String gender = "";

/**
 * Description of the property dateOfBirth.
 */
private String dateOfBirth = "";

/**
 * Description of the property address1.
 */
private String address1 = "";

/**
 * Description of the property address2.
 */
private String address2 = "";

/**
 * Description of the property city.
 */
private String city = "";

/**
 * Description of the property state.
 */
private String state = "";

/**
 * Description of the property country.
 */
private String country = "";

/**
 * Description of the property pincode.
 */
private String pincode = "";

/**
 * Description of the property profileGroup.
 */
private String profileGroup = "";

/**
 * Description of the property delFlg.
 */
private String delFlg = "";

/**
 * Description of the property remarks.
 */
private String remarks = "";

/**
 * Description of the property rCreTime.
 */
private String rCreTime = "";

/**
 * Description of the property rModTime.
 */
private String rModTime = "";

// Start of user code (user defined attributes for UserDetails)

// End of user code

/**
 * The constructor.
 */
public UserDetails() {
    // Start of user code constructor for UserDetails)
    super();
    // End of user code
}

// Start of user code (user defined methods for UserDetails)

// End of user code
/**
 * Returns dbts.
 * @return dbts 
 */
public Integer getDbts() {
    return this.dbts;
}

/**
 * Sets a value to attribute dbts. 
 * @param newDbts 
 */
public void setDbts(Integer newDbts) {
    this.dbts = newDbts;
}

/**
 * Returns ulaId.
 * @return ulaId 
 */
public String getUlaId() {
    return this.ulaId;
}

/**
 * Sets a value to attribute ulaId. 
 * @param newUlaId 
 */
public void setUlaId(String newUlaId) {
    this.ulaId = newUlaId;
}

/**
 * Returns firstName.
 * @return firstName 
 */
public String getFirstName() {
    return this.firstName;
}

/**
 * Sets a value to attribute firstName. 
 * @param newFirstName 
 */
public void setFirstName(String newFirstName) {
    this.firstName = newFirstName;
}

/**
 * Returns lastName.
 * @return lastName 
 */
public String getLastName() {
    return this.lastName;
}

/**
 * Sets a value to attribute lastName. 
 * @param newLastName 
 */
public void setLastName(String newLastName) {
    this.lastName = newLastName;
}

/**
 * Returns emailId.
 * @return emailId 
 */
public String getEmailId() {
    return this.emailId;
}

/**
 * Sets a value to attribute emailId. 
 * @param newEmailId 
 */
public void setEmailId(String newEmailId) {
    this.emailId = newEmailId;
}

/**
 * Returns mobileNo.
 * @return mobileNo 
 */
public String getMobileNo() {
    return this.mobileNo;
}

/**
 * Sets a value to attribute mobileNo. 
 * @param newMobileNo 
 */
public void setMobileNo(String newMobileNo) {
    this.mobileNo = newMobileNo;
}

/**
 * Returns gender.
 * @return gender 
 */
public String getGender() {
    return this.gender;
}

/**
 * Sets a value to attribute gender. 
 * @param newGender 
 */
public void setGender(String newGender) {
    this.gender = newGender;
}

/**
 * Returns dateOfBirth.
 * @return dateOfBirth 
 */
public String getDateOfBirth() {
    return this.dateOfBirth;
}

/**
 * Sets a value to attribute dateOfBirth. 
 * @param newDateOfBirth 
 */
public void setDateOfBirth(String newDateOfBirth) {
    this.dateOfBirth = newDateOfBirth;
}

/**
 * Returns address1.
 * @return address1 
 */
public String getAddress1() {
    return this.address1;
}

/**
 * Sets a value to attribute address1. 
 * @param newAddress1 
 */
public void setAddress1(String newAddress1) {
    this.address1 = newAddress1;
}

/**
 * Returns address2.
 * @return address2 
 */
public String getAddress2() {
    return this.address2;
}

/**
 * Sets a value to attribute address2. 
 * @param newAddress2 
 */
public void setAddress2(String newAddress2) {
    this.address2 = newAddress2;
}

/**
 * Returns city.
 * @return city 
 */
public String getCity() {
    return this.city;
}

/**
 * Sets a value to attribute city. 
 * @param newCity 
 */
public void setCity(String newCity) {
    this.city = newCity;
}

/**
 * Returns state.
 * @return state 
 */
public String getState() {
    return this.state;
}

/**
 * Sets a value to attribute state. 
 * @param newState 
 */
public void setState(String newState) {
    this.state = newState;
}

/**
 * Returns country.
 * @return country 
 */
public String getCountry() {
    return this.country;
}

/**
 * Sets a value to attribute country. 
 * @param newCountry 
 */
public void setCountry(String newCountry) {
    this.country = newCountry;
}

/**
 * Returns pincode.
 * @return pincode 
 */
public String getPincode() {
    return this.pincode;
}

/**
 * Sets a value to attribute pincode. 
 * @param newPincode 
 */
public void setPincode(String newPincode) {
    this.pincode = newPincode;
}

/**
 * Returns profileGroup.
 * @return profileGroup 
 */
public String getProfileGroup() {
    return this.profileGroup;
}

/**
 * Sets a value to attribute profileGroup. 
 * @param newProfileGroup 
 */
public void setProfileGroup(String newProfileGroup) {
    this.profileGroup = newProfileGroup;
}

/**
 * Returns delFlg.
 * @return delFlg 
 */
public String getDelFlg() {
    return this.delFlg;
}

/**
 * Sets a value to attribute delFlg. 
 * @param newDelFlg 
 */
public void setDelFlg(String newDelFlg) {
    this.delFlg = newDelFlg;
}

/**
 * Returns remarks.
 * @return remarks 
 */
public String getRemarks() {
    return this.remarks;
}

/**
 * Sets a value to attribute remarks. 
 * @param newRemarks 
 */
public void setRemarks(String newRemarks) {
    this.remarks = newRemarks;
}

/**
 * Returns rCreTime.
 * @return rCreTime 
 */
public String getRCreTime() {
    return this.rCreTime;
}

/**
 * Sets a value to attribute rCreTime. 
 * @param newRCreTime 
 */
public void setRCreTime(String newRCreTime) {
    this.rCreTime = newRCreTime;
}

/**
 * Returns rModTime.
 * @return rModTime 
 */
public String getRModTime() {
    return this.rModTime;
}

/**
 * Sets a value to attribute rModTime. 
 * @param newRModTime 
 */
public void setRModTime(String newRModTime) {
    this.rModTime = newRModTime;
}

}

我需要做哪些更改才能从多个数据中获取特定列。

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果是原生查询,您应该返回List<Object[]>而不是UserDetails

另一种方法是创建投影。您可以使用Spring Data JPA http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections中的投影。