Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 76

Hibernate search

02.10.2012, 18:56. Показов 3820. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не могу разобраться самостоятельно в hibernate search. после пролистывания мануалов понял что он индексирует поля сущности уже на уровне базы данных , и это типа уменьшает время выборки, т.е. надо в классе описания таблицы вставить аннотации индексации в нужных поля и что делать дальше на примере этого класса если искать по email (обязательно нужен hibernate search)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.citronium.expo2.dao.users.db.expoUser;
 
import com.citronium.expo2.common.ApplicationProperties;
 
import javax.persistence.*;
import java.math.BigInteger;
import java.util.Date;
 
 
@Entity
@Table(name = "Expo_User")
@NamedQueries({
        @NamedQuery(name = "ExpoUser.getByEmail", query = "select u from ExpoUser u where u.email=:email"),
        @NamedQuery(name = "ExpoUser.clear", query = "DELETE FROM ExpoUser"),
        @NamedQuery(name = "ExpoUser.getByExpoId", query = "SELECT DISTINCT u FROM ExpoUser u, Visitor v WHERE v.expoId=:expoId AND v.userId=u.id"),
        @NamedQuery(name = "ExpoUser.remove", query = "DELETE FROM ExpoUser u WHERE u.id=:id")
})
public class ExpoUser {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private BigInteger id;
    @Column(nullable = false)
    private String email;
    @Column(name = "new_email" ,nullable = true)
    private String newEmail;
    @Column(name = "password" ,nullable = false)
    private String password;
    @Column(name = "birthday" ,nullable = true)
    private Date birthday;
    @Column(name = "sex" ,nullable = true)
    private Integer sex;
 
    private String logo;
 
 
    public ExpoUser() {
    }
 
    public ExpoUser(String email, String password, Date birthday, Integer sex, String logo) {
        this.email = email;
        this.password = password;
        this.birthday = birthday;
        this.sex = sex;
        this.logo = logo;
    }
 
    public ExpoUser(BigInteger id, String email, String newEmail, String password, Date birthday, Integer sex, String logo) {
        this.id = id;
        this.email = email;
        this.newEmail = newEmail;
        this.password = password;
        this.birthday = birthday;
        this.sex = sex;
        this.logo = logo;
    }
 
    public ExpoUser(BigInteger id, String email, String password) {
        this.id = id;
        this.email = email;
        this.password = password;
    }
 
    public ExpoUser(BigInteger id, String email, String password, Date birthday, Integer sex, String logo) {
        this.id = id;
        this.email = email;
        this.password = password;
        this.birthday = birthday;
        this.sex = sex;
        this.logo = logo;
    }
 
    public BigInteger getId() {
        return id;
    }
 
    public String getEmail() {
        return email;
    }
 
    public String getPassword() {
        return password;
    }
 
    public Date getBirthday() {
        return birthday;
    }
 
    public Integer getSex() {
        return sex;
    }
 
    public String getLogo() {
        return ((logo != null) && (logo.length() != 0)) ? logo : ApplicationProperties.getProperty(ApplicationProperties.APPLICATION_URL)
                + ApplicationProperties.getProperty(ApplicationProperties.USER_DEFAULT_LOGO_URL);
    }
 
    public String getNewEmail() {
        return newEmail;
    }
 
    public void setNewEmail(String newEmail) {
        this.newEmail = newEmail;
    }
 
    @Override
    public boolean equals(Object object) {
        if (!(object instanceof ExpoUser)) {
            return false;
        }
        ExpoUser other = (ExpoUser) object;
        if ((this.id != other.id) && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }
 
 
    @Override
    public String toString() {
        return "ExpoUser{" +
                "id=" + id +
                ", email='" + email + '\'' +
                ", password='" + password + '\'' +
                ", birthday=" + birthday +
                ", sex=" + sex +
                ", logo='" + logo + '\'' +
                '}';
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.10.2012, 18:56
Ответы с готовыми решениями:

Hibernate
Привет кодеры! У меня несколько вопросов имеются. 1) У entityManager есть методы: сохранения сущности persist, обновления сущности...

hibernate
Здравтсвуйте, не могу понять как этот вопрос задать googl'у. Допустим, есть таблица в которой больше 40 полей, как не описывать каждое...

Hibernate
Начал изучать Hibernate. Создал небольшой проект. С следующим содержанием. pom.xml <project...

1
66 / 55 / 11
Регистрация: 16.04.2010
Сообщений: 190
Записей в блоге: 1
08.10.2012, 09:57
Надо Ваш класс пометить аннотацией @Indexed, на метод getId() добавить аннотацию @DocumentId,
и на email - @Field (надо задать, будет ли поле подвергаться анализу, храниться вместе с индексом).
Затем определиться, где будет храниться индекс (в памяти/на диске), добавить пару опций в конфигурацию Hibernate.
Код для поиска может выглядеть так:
Java
1
2
3
4
5
6
FullTextSession fullTextSession = Search.getFullTextSession(sessionFactory.getCurrentSession());
QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder()
                .forEntity(ExpoUser.class).get();
Query query = qb.keyword().wildcard().onField("email")
                .matching(text + "*").createQuery();
List<ExpoUser> result = getFullTextSession().createFullTextQuery(query).list();
Код конечно будет отличаться в зависимости от того, как Вы будете "искать".
Вообще официальной документации достаточно, чтобы написать рабочий пример, а потом уже его подправлять под свою задачу.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.10.2012, 09:57
Помогаю со студенческими работами здесь

Spring Hibernate
Всем привет! Народ, подскажите пожалуйста, хочу использовать представление из MS SQL в виде JPA. Таблицы: Клиент: инн название...

Hibernate ошибки
Пытаюсь вывести данные из таблицы с помощью hibernate package db; import books.util; import db_tables.*; import...

Hibernate, путаюсь
Я путаюсь, когда пишут pojo класс с @Entity, @Id @Column @ManyToOne и тд, это я же пользуюсь JPA, а не Hibernate. Или как? а как тогда...

Hibernate и Spring
В универе задали переделать лабу. До этого был один hibernate, а теперь использовать Spring. Подскажите, где можно найти уроки со спрингом,...

Hibernate or spring
Имеет ли смысл использовать hibernate или spring когда есть встроенный в томкате средство для БД? что будет быстрее работать, важна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru