I'm trying to call for only specific columns in my DB but the query is throwing an error saying that the next column is not found (even though it's not in the query)
Is there a problem in the join that's doin this? I'm a bit perplexed as to this problem.
JPA Query from ConnectionRequestRepository -
@Query(value = "SELECT connection_request.id, connection_request.userId, connection_request.dateTimeCompleted, connection_request.phoneNumber " +
"FROM ***.connection_request " +
"INNER JOIN ***.user " +
"ON ***.connection_request.userID = ***.user.id " +
"WHERE connection_request.dateTimeCompleted IS NULL " +
"LIMIT 1", nativeQuery = true)
ConnectionRequest findActiveRequest();
Service -
public ConnectionRequest getActiveRequestToCaller() {
return connectionRequestRepository.findActiveRequest();
}
Controller -
ConnectionRequest currentLocationRequest = connectionRequestService.getActiveRequestToCaller();
ConnectionRequest Class -
@Entity
@Table(name = "connection_request")
public class ConnectionRequest {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
@NotNull
private Long id;
@Column(name = "userId")
@NotNull
private Long userId;
@Column(name = "uuid")
@NotNull
private UUID uuid;
@Column(name = "phoneNumber")
@NotNull
private String phoneNumber;
@Column(name = "locationSource")
@NotNull
private String locationSource;
@Column(name = "dateTimeRequested")
private Timestamp dateTimeRequested;
@Column(name = "dateTimeRequestExpires")
private Timestamp dateTimeRequestExpires;
@Column(name = "dateTimeCompleted")
private Timestamp dateTimeCompleted;
@Column(name = "s3Bucket")
private String s3Bucket;
@Column(name = "s3Key")
private String s3Key;
@Column(name = "s3Etag")
private String s3Etag;
@Column(name = "s3Sha256Hash")
private String s3Sha256Hash;
@Column(name = "isScheduledForCompletion")
@NotNull
private Integer isScheduledForCompletion;
public ConnectionRequest() {}
public ConnectionRequest(Long id,
Long userId,
UUID uuid,
String phoneNumber,
String locationSource,
Timestamp dateTimeRequested,
Timestamp dateTimeRequestExpires,
Timestamp dateTimeCompleted,
String s3Bucket,
String s3Key,
String s3Etag,
String s3Sha256Hash,
Integer isScheduledForCompletion) {
this.id = id;
this.userId = userId;
this.uuid = uuid;
this.phoneNumber = phoneNumber;
this.locationSource = locationSource;
this.dateTimeRequested = dateTimeRequested;
this.dateTimeRequestExpires = dateTimeRequestExpires;
this.dateTimeCompleted = dateTimeCompleted;
this.s3Bucket = s3Bucket;
this.s3Key = s3Key;
this.s3Etag = s3Etag;
this.s3Sha256Hash = s3Sha256Hash;
this.isScheduledForCompletion = isScheduledForCompletion;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public UUID getUuid() {
return uuid;
}
public void setUuid(UUID uuid) {
this.uuid = uuid;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getLocationSource() {
return locationSource;
}
public void setLocationSource(String locationSource) {
this.locationSource = locationSource;
}
public Timestamp getDateTimeRequested() {
return dateTimeRequested;
}
public void setDateTimeRequested(Timestamp dateTimeRequested) {
this.dateTimeRequested = dateTimeRequested;
}
public Timestamp getDateTimeRequestExpires() {
return dateTimeRequestExpires;
}
public void setDateTimeRequestExpires(Timestamp dateTimeRequestExpires) {
this.dateTimeRequestExpires = dateTimeRequestExpires;
}
public Timestamp getDateTimeCompleted() {
return dateTimeCompleted;
}
public void setDateTimeCompleted(Timestamp dateTimeCompleted) {
this.dateTimeCompleted = dateTimeCompleted;
}
public String getS3Bucket() {
return s3Bucket;
}
public void setS3Bucket(String s3Bucket) {
this.s3Bucket = s3Bucket;
}
public String getS3Key() {
return s3Key;
}
public void setS3Key(String s3Key) {
this.s3Key = s3Key;
}
public String getS3Etag() {
return s3Etag;
}
public void setS3Etag(String s3Etag) {
this.s3Etag = s3Etag;
}
public String getS3Sha256Hash() {
return s3Sha256Hash;
}
public void setS3Sha256Hash(String s3Sha256Hash) {
this.s3Sha256Hash = s3Sha256Hash;
}
public Integer getIsScheduledForCompletion() {
return isScheduledForCompletion;
}
public void setIsScheduledForCompletion(Integer isScheduledForCompletion) {
this.isScheduledForCompletion = isScheduledForCompletion;
}
}