Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate Validator как его кушать 
V
    Опции темы
acvilon
  Дата 7.8.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.4.2007
Где: Spb

Репутация: нет
Всего: нет



Продолжаю тему на счет SpringMVC+Ejb+JPA

Теперь возникла проблема, как отвалидировать ентитю при помощи Hibernate Validator Framework. 
Вот ентитя и session stateles bean.
Код

package ru.iamready.action;

import ru.iamready.model.User;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.persistence.PersistenceContext;
import java.util.List;

import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;

@Stateless(name = "UserLogin", mappedName = "UserLogin")
public class UserLoginAction implements UserLogin {

    @PersistenceContext
    private EntityManager entityManager;

    private User user;

    @Override
    public void register(String name, String surname) {
        User user = new User();
        user.setName(name);
        user.setSurname(surname);

        ClassValidator validator = new ClassValidator(User.class);
        InvalidValue[] errors = validator.getInvalidValues(user);
        
        entityManager.persist(user);
        entityManager.flush();
    }

    @Override
    public String sayHello(String name) {
        return "Fuck you, " + name;
    }

    @Override
    public List<User> getAllUsers() {
        Query query = entityManager.createQuery("select user from User user");
        return query.getResultList();
    }
}

package ru.iamready.model;


import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.event.JPAValidateListener;

import javax.persistence.*;
import static javax.persistence.GenerationType.IDENTITY;
import java.io.Serializable;


@Entity
@EntityListeners(JPAValidateListener.class )
@Table(name = "testUser", catalog = "ready")
public class User implements Serializable{
    private Integer id;
    private String name;
    private String surname;

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name = "name", nullable = false)
    @Length(max = 5)
    @NotNull
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(name = "surname", nullable = false)
    @Length(max = 5)
    @NotNull
    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }
}


И валидация с помощью этого фреймворка не срабатывает при сохранения и не работает если ее дергать руками, если кто-то сталкивался с этим жду от вас комментов.
А то я уже как сам с собой в этих темах разговариваю(

Проектик прилагаю!



Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  testProject.zip 46,42 Kb
PM MAIL ICQ   Вверх
AntonSaburov
Дата 7.8.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Ну вы батенька уж слишком - ради одного Entity (во всяком случае я только один нашел) нагородили целое EJB приложение. А попроще пример не получается сделать ?

Добавлено @ 18:03
Только что для своего примера подставил ограничение по длине - работает. Просто установил аннотацию Length и подключил JAR. И сразу получил: 
org.hibernate.validator.InvalidStateException: validation failed

Что вообщем-то и должно было случиться
PM MAIL WWW ICQ   Вверх
acvilon
  Дата 7.8.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.4.2007
Где: Spb

Репутация: нет
Всего: нет



Ну как-бы пример уже работающий, до этого тема была, где я учился дружить  ejb со спрингом. Сейчас хочу использовать hibernate validator, а он нивкакую не хочет валидировать. Есть предположения почему? И как бы на основе этого зачатка, я далее начну писать проект, сейчас надо зазрешить вопрос с технологиями. 
PM MAIL ICQ   Вверх
AntonSaburov
Дата 7.8.2009, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Это он у тебя работающий - а нам же надо для проверки еще базу данных создавать и таблицы smile Время все-таки.

Попробуй standalone приложение набросать. Посмотреть можно здесь - http://java-course.ru/students/part18.html

Останется только добавить еще hibernate-validator.jar и использовать в каком-нибудь Entity аннотации для валидации.
Ну и запустить.
PM MAIL WWW ICQ   Вверх
acvilon
  Дата 8.8.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.4.2007
Где: Spb

Репутация: нет
Всего: нет



Да, люди все  ленивые, никто не может скачать проект и написать в командной строке mvn clean install((((

Разобрался в чем проблема. Она заключалась в том, что модель(ентити) лежат в джарники, который кладется в либы и доступен и в ejb модуле и в war модуле. Это весьма странно, сейчас пытаюсь разобраться, как же спроектировать приложение, такое приложение, точнее как его перепроектировать или же как настроить, JPA и Hibernate Validator.
PM MAIL ICQ   Вверх
acvilon
Дата 8.8.2009, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.4.2007
Где: Spb

Репутация: нет
Всего: нет



Closed
PM MAIL ICQ   Вверх
AntonSaburov
Дата 11.8.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Цитата(acvilon @  8.8.2009,  20:41 Найти цитируемый пост)
написать в командной строке mvn clean install((((

Все ставим Maven ? smile
PM MAIL WWW ICQ   Вверх
serger
Дата 12.8.2009, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: 2
Всего: 5



Цитата(AntonSaburov @  11.8.2009,  18:19 Найти цитируемый пост)
Все ставим Maven ? smile 

Давно пора! 


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.