Я выбираю записи, основываясь на каких-то условиях и нормально работает. Пожалуйста, найдите запрос ниже., Который работал как ожидалось.
Select req1 from UserRequest as req1 where and req1.fullyApproved = true and req1.createdAt=(select max(createdAt) from UserRequest req2 where req1.userRequestName=req2.userRequestName)
Пожалуйста, найдите класс модели для таблицы UserRequest.
@Getter
@Setter
@Entity
@Table(name = "user_requests")
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserRequest implements Identifiable<Long>, LazilyLoadable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonIgnore
private Long id;
@Column(name = "created_at")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime createdAt;
@Column(name = "supervisor_name")
private String supervisorName;
@Column(name="fully_approved")
private boolean fullyApproved;
@Column(name="user_request_name")
private String userRequestName;
@Transient
@JsonProperty
private User user;
}
Please find the model class for User
@Getter
@Setter
@Entity
@Table(name = "users")
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(of = {"username"})
@ValidDsdPermissions
@ValidApprovalPrivileges
public class User implements Identifiable<Long>, LazilyLoadable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonProperty("userLink")
private Long id;
@NotEmpty(message = "{error.model.user.attribute.username.required}")
@Column(unique = true, nullable = false)
private String full_name;
@NotEmpty(message = "{error.model.user.attribute.email.required}")
@Email(message = "{error.model.user.attribute.email.format.invalid}")
@Column(nullable = false)
private String email;
@Column(name = "is_active")
private boolean active = true;
}
Из этого класса две модели full_name
& supervisor_name
одинаковы.
Я добавил еще одно условие перед выбором записей. (u.active = true)
(u - объект таблицы User). Этот запрос не работает должным образом - u.active=true
не удовлетворяет.
Select req1 from User u, UserRequest as req1 where u.active=true and req1.fullyApproved = true and req1.createdAt=(select max(createdAt) from UserRequest req2 where req1.userRequestName=req2.userRequestName)
Как я могу изменить этот запрос .?