LocalDate(Joda) + Hibernate Validator

3 respostas
felixcoutinho

Olá a todos,
estou fazendo um teste em uma entidade que contém a seguinte propriedade:

/**
	 * User birthday
	 */
	@NotNull(message = "validate.user.birthday.notnull")
	@Past(message = "validate.user.birthday.valid")
	@Column(name = "birthday")
	private LocalDate birthday;

Meu teste está assim:

/**
	 * Test if Type field validation throws the correct validation, and
	 * check if message is correct
	 */
	@Test
	public void testNotEmptyBirthdayMessage() {
		User userToTest = new User();
		ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

		Validator validator = factory.getValidator();
		Set<ConstraintViolation<User>> constraintViolations = validator
				.validateProperty(userToTest, "birthday");
		Assert.assertEquals("validate.user.birthday.notnull",
				constraintViolations.iterator().next().getMessage());
	}

Mas acontece que o Hibernate Validator não sabe validar LocalDate, preciso criar uma implementação para isso?

Alguém pode ajudar?

3 Respostas

A

tenta adicionar o type e incluir no CLASSPATH o joda-time-hibernate-1.2.jar

@Type(type = “org.joda.time.contrib.hibernate.PersistentLocalDate”)

abs

ThiagoInGuj

E aí Feliz, estou com o mesmo problema. como resolveu?

felixcoutinho

O usertype sabe fazer a validação, faz assim:

Alterei:

/**
	 * Data de Nascimento
	 */
	@Column(name = "data_nascimento")
	@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
	private DateTime nascimento;

E adicione o usertype.core-3.0.0.CR1-sources.jar no classpath, aí ficou tudo funcionando :slight_smile:

abraços

Criado 27 de outubro de 2010
Ultima resposta 3 de ago. de 2012
Respostas 3
Participantes 3