Гибернация выбора записей от одного до многих отношений не работает - PullRequest
0 голосов
/ 24 апреля 2019

Я выбираю записи, основываясь на каких-то условиях и нормально работает. Пожалуйста, найдите запрос ниже., Который работал как ожидалось.

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)

Как я могу изменить этот запрос .?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...