У меня есть класс Entity как TestEntity, который имеет несколько полей, таких как testId, name, status и т. д., и он расширяет один базовый класс, имеющий общие поля, такие как id, созданныйBy, LastModifiedBy и т. д.
Ниже приведен класс TestEntity.
Код: Выделить всё
@NoArgsConstructor
@Table(name = "TEST")
public class TestEntity extends EntityCommonBase {
@Id
@Column(name = "TEST_ID", nullable = false)
private String testId;
@Column(name = "STATUS")
private String status;
}
Код: Выделить всё
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class EntityCommonBase {
@Column(length = 32, columnDefinition = "VARCHAR(32)", unique = true)
private String id;
@CreatedDate
@Column(name = "created", nullable = false, updatable = false)
private LocalDateTime created;
@LastModifiedDate
@Column(name = "last_update")
private LocalDateTime lastUpdate;
@CreatedBy
@Column(name = "created_by", nullable = false, updatable = false)
private String createdBy;
@LastModifiedBy
@Column(name = "last_modified_by")
private String lastModifiedBy;
}
Код: Выделить всё
TestEntity testEntitySearchRequest = new TestEntity();
testEntitySearchRequest.setTestId(testId);
testEntitySearchRequest.setStatus(status.getValue());
Example example = Example.of(testEntitySearchRequest);
List tests = testDAO.findAll(example);
Например, если я передаю в запросе только testId, findAll будет выполнен с testId в предложенииwhere.
Если я передам testId И статус, то findAll будет выполнен с testId И статусом.
Это отлично работает и сослужит мне службу. Цель.
Но почему он также добавляет createBy и LastModifiedBy в предложениеwhere, я не понимаю.
Есть идеи, почему они будут добавлены, даже если я не упоминаю их для добавления в предложениеwhere?
Надеюсь, вопрос ясен.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ere-clause
Мобильная версия