Erro do Hibernate ao tentar salvar objeto via JUnit

Então pessoal, estou com um problema na implementação de alguns testes pelo JUnit.

Quando eu chamo o método que salva a entidade ele mostra o seguinte erro:

12:48:55,531 ERROR BasicPropertyAccessor:94 - IllegalArgumentException in class: com.deltacore.model.base.ValueObject, setter method of property: ativo 12:48:55,531 ERROR BasicPropertyAccessor:98 - expected type: java.lang.String, actual value: java.lang.Boolean

O atributo está mapeado da seguinte forma no hbm:

	<!-- Value Object -->
		<property name="ativo" type="java.lang.String" column="LOT_IND_ATV" />	

No banco a coluna é varchar(1) e recebe ‘S’ ou ‘N’

Este erro ocorre quando chamo o método saveOrUpdate()…

Assim, o que eu acho mais estranho é que ele ocorre apenas nos Testes de JUnit…

Acessando via Interface Gráfica, o método funciona normalmente!!

Alguém saberia o porque isto acontece???

Agradeço desde já a ajuda!

O que parece é que você passou um Boolean no lugar onde deveria ser uma String. Verifique seu código de teste.

Então…

Quando crio o objeto ele já recebe por padrão ‘S’ …
Não preciso ‘setar’ valores nesta variável!!!

Acredito que se eu estivesse passando um Boolean no lugar de uma String, o erro ocorreria na hora de setar a variável, e não na hora de salvar, correto?

[quote=Thiago_Luiz]Então…

Quando crio o objeto ele já recebe por padrão ‘S’ …
Não preciso ‘setar’ valores nesta variável!!!

Acredito que se eu estivesse passando um Boolean no lugar de uma String, o erro ocorreria na hora de setar a variável, e não na hora de salvar, correto?

[/quote]
Não sei, não sei como você implementou as coisas por aí. Mostre o código.

Método que cria o objeto e chama o método de salvar :

	public static Lote getLote(int tipo, boolean salvar, String descricao) throws BOException {
			Lote lote = new Lote();
			
			if(tipo == LOTE_DESCRICAO) 
				lote.setDescricao(descricao);
			
			if (salvar)
				lote = assetBO.saveLote(lote, usuario);
			
			return lote;
		}

Método da classe BO:


public Lote saveLote(Lote lote, IUsuario usuario) throws BOException {
		if (lote == null) {
			return lote;
		}
		
		DAOFactory factory = DAOFactory.getFactory();
		SessionDAO session = factory.createSessionDAO();
		LoteDAO loteDAO = factory.getLoteDAO(session);

		try {
			session.beginTrans();
			updateValueObject(lote, usuario);
                        // Na linha abaixo que  ocorre o erro 
			loteDAO.saveOrUpdate(lote);
			session.commit();
			
		} catch (DAOException e) {
			if (logger.isEnabledFor(Level.ERROR)) {
				logger.error(e);
			}
			throw new BOException(BOException.ERRO_SAVE, e);
		} catch (ValidationException e) {
			throw new BOException(e);
		} finally {
			session.close();
		}

		return lote;
	}

Método saveOrUpdate do DAO:


    public void saveOrUpdate(T obj) throws DAOException, ValidationException {
        	
        try {
            getSession().saveOrUpdate(obj);
            processHibernatedBean(obj);
        }catch (RuntimeException e) {
            throw getDAOExceptionNoHib("Problema salvando ou fazendo update no objeto", e);
        }
    }