У меня есть индексный объект, как показано ниже:Hibernate-search поведение?
@MappedSuperclass
public static class Model{
@Id
@GeneratedValue(strategy=GenerationType.Identity)
private Integer id;
private boolean isDeleted;
}
и индексированный класс:
@Entity
@Table("USERS")
@Indexed
public class ProductModel extends Model{
@Field
private String name;
//getters & setters
}
Ну, когда я делаю исследование по ProductModel
, я получаю значение флага isDeleted
времени его не аннотируется с @Field
.
Я спрашиваю, является ли это нормальным поведением, Hibernate-search Индекс всего объекта. Или он извлекает недостающие данные из базы данных, мне нужно объяснение этого поведения.
так что такое точное поведение, запрашивает ли он базу данных для каждого исследования? –
В обычном поиске да, он запускает запрос против индексов Lucene, тогда он выполняет запрос/запросы в базе данных для создания управляемых объектов. Единственный случай, когда он этого не делает, - это использование проекции для возврата определенных полей, хранящихся непосредственно в индексе. Как я уже говорил, это одна из приятных вещей в Hibernate Search. –