
Митко Соловец?
13.05.2016
11:10:01
я спринг дату подружил с критерия эйпиай
от хибера
для динамических запросов

Виталий
13.05.2016
11:13:19
У вас на работе тоже сокращают до "апи" вместо "эйпиай"?

Google

Митко Соловец?
13.05.2016
11:13:45
да, это я просто выебываюсь

Виталий
13.05.2016
11:13:51
?

Dmitrii
13.05.2016
11:15:00
Я как то походил к репетитору, потом на работу пришел и произнес слово "Archive" как надо. Меня никто не понял

Pavel ?
13.05.2016
11:16:12
от хибера
На надо было монгу, а хибер ее не умеет

Митко Соловец?
13.05.2016
11:16:37
спринг дата монго?

Pavel ?
13.05.2016
11:17:15
Ага

Митко Соловец?
13.05.2016
11:17:30
у нас на проекте тоже она есть
хорошая вещь, поинтересней голого драйвера

Pavel ?
13.05.2016
11:17:51
Спринг дата это унифицированный интерфейс над орм и дбо
Короче еще одна абстракция))

Артем
13.05.2016
11:19:14

Митко Соловец?
13.05.2016
11:19:33
20 гигабайт херня?

Quet
13.05.2016
11:19:41
конечно

Google

Pavel ?
13.05.2016
11:19:41

Митко Соловец?
13.05.2016
11:19:41
вы что там порнуху храните?
или у вас продукт уже ин продакшен?

Dmitrii
13.05.2016
11:20:42
Это мн евопрос?

Pavel ?
13.05.2016
11:20:43
У нас терики в таблицах)))

Митко Соловец?
13.05.2016
11:21:31

Dmitrii
13.05.2016
11:21:46
Ну типа типа уже много лет в проде.

Митко Соловец?
13.05.2016
11:22:23
тогда нормально

Dmitrii
13.05.2016
11:22:33
Поэтому и MySQL собсна.

Артем
13.05.2016
12:08:25
https://tproger.ru/news/google-amazing-parsey-mcparseface/

ThisIs
13.05.2016
12:25:41

guga
13.05.2016
12:27:08

ThisIs
13.05.2016
12:27:18
Критерии
Я только через сам хайбернет работаю без спринг дата
Критерии сильно нравятся)

Митко Соловец?
13.05.2016
12:28:57
сейчас скину код

Pavel ?
13.05.2016
12:29:23
Наверно Дима на базе репы запилил дбо
с Б и Ш)

Митко Соловец?
13.05.2016
12:30:04
дбо?

Google

Pavel ?
13.05.2016
12:31:25
Бля))) дао)

Митко Соловец?
13.05.2016
12:31:35
`
@Service
public class DocumentServiceImpl implements DocumentService {
@PersistenceContext
private EntityManager entityManager;
@Transactional
@Override
public List<Document> getDocumentsWithCriteria(String name, DocumentType type) {
Session session = entityManager.unwrap(Session.class);
Criteria query = session.createCriteria(Document.class, "document");
if (!name.isEmpty()) {
query.add(Restrictions.or(Restrictions.like("document.name", "%" + StringUtils.capitalize(name) + "%"),
Restrictions.like("document.name", "%" + name + "%"))
);
}
if (type != null) {
query.add(Restrictions.eq("document.type", type));
}
return query.list();
}
}
`
как-то так

ThisIs
13.05.2016
12:32:50
А транзакции сам закрывает?
Currentsession?

Митко Соловец?
13.05.2016
12:33:00
да
если не поставить аннотацию или вручную не открывать ее, то будет исключение

ThisIs
13.05.2016
12:33:26
Ясно я как то пробовал на плейе

Митко Соловец?
13.05.2016
12:33:47
такой вот адаптер EntityManager JPA->Session Hibernate

ThisIs
13.05.2016
12:33:52
Там транзакции не открывал и не закрывал

Митко Соловец?
13.05.2016
12:34:14
смотрел еще родное апи JPA Criteria
мне не понравилось, как-то громоздко очень, у хибера лучше

ThisIs
13.05.2016
12:34:30
Она слабая чем хиб
В хибере же можно вообще одими критериями обойтись

Митко Соловец?
13.05.2016
12:35:25
да,это так
но спринг дата еще тоньше
там можно обойтись только объявлением названия метода в интерфейсе

ThisIs
13.05.2016
12:36:04
Только длинные они?

Igor
13.05.2016
12:36:10
и для 99% задач этого достаточно

Митко Соловец?
13.05.2016
12:36:23
да

Google

Митко Соловец?
13.05.2016
12:36:37
а для динамики, юзайте или голый сиквел или выше адаптер

guga
13.05.2016
12:36:41

Митко Соловец?
13.05.2016
12:37:14
динамический запрос же
чтобы не городить руками это все в аннотации

guga
13.05.2016
12:37:47
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u where u.emailAddress = ?1")
User findByEmailAddress(String emailAddress);
}
что-то типо такого

Митко Соловец?
13.05.2016
12:38:08
дублирование

Admin
ERROR: S client not available

Митко Соловец?
13.05.2016
12:38:14
User findByEmailAddress(String emailAddress);
он тебе и просто так найдет
без аннотации

guga
13.05.2016
12:38:37
Это как пример, ты же можешь написать что-то сложнее

Митко Соловец?
13.05.2016
12:38:46
сложнее - городить все в аннотацию
сразу вспоминаю майбатис

ThisIs
13.05.2016
12:39:38
А кэш от спринг дата?
Или хибернетовский?

Митко Соловец?
13.05.2016
12:40:35
хибернетовский
спринг дата лишь интерфейс
а кэширует то, что ты выбрал в качестве провайдера JPA

guga
13.05.2016
12:40:54

Google

Митко Соловец?
13.05.2016
12:41:03
не обязательно хибер
любой JPA провайдер
гуга
по поводу написать сложнее
https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

guga
13.05.2016
12:41:27
не видел где это можно задать ?

Митко Соловец?
13.05.2016
12:41:32
даже оф. блог спринга для динамики юзает критерии
правда JPA
мне критерии хибера более понятные и читабельнее
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
JpaVendorAdapter vendorAdapter = new EclipseLinkJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
и т.д.
потом сеттаешь проперти в этот адаптер и сохраянешь настройки

guga
13.05.2016
12:44:45

Митко Соловец?
13.05.2016
12:45:12
это в джава конфиге персистенса твоей аплликухи
или ты хмл конфигуришь?