Hibernate - Dúvida: Cláusula "WHERE" com List

2 respostas
L

Bom dia,

gostaria de saber como modificar o método abaixo, para que
ele efetue esta consulta, porém recebendo um List pres,
ao invés de String idPresentation.

Preciso disto pois agora o relacionamento entre Document e
Presentation é N pra N.

public int getWho(String idProduct, String idPresentation,
		String idClassification) {

	String query = "select idDocument from Document where X";
	
	if (idProduct != null && BeanUtilities.isANumber(idProduct)) {
		query += " and ProductId=" + idProduct;
	}

	if (idPresentation != null
			&& BeanUtilities.isANumber(idPresentation)) {
		query += " and PresentationId=" + idPresentation;
	}

	if (idClassification != null
			&& BeanUtilities.isANumber(idClassification)) {
		query += " and ClassificationId=" + idClassification;
	}

	if (query.indexOf("X") == query.length() - 1) {
		query = query.replaceFirst("where X", "");
	} else {
		query = query.replaceFirst("X and", "");
	}
		
	Object who = logicDAO.getSession().createQuery(query).uniqueResult();
	return (who == null) ? 0 : ((Integer) who).intValue();
}

Obrigado!

2 Respostas

luis.soares

Leonardo, explique um pouco o contexto desta consulta.

Abraço.

L

Olá Luis,

Essa consulta é para verificar se o existe algum Document
com essas propriedades existente no BD.
Um dos usos deste método é no cadastro do documento, onde
é feita uma validação para impedir que seja cadastrado um
documento com as mesmas características de um existente.

Abraço…

Criado 16 de novembro de 2006
Ultima resposta 16 de nov. de 2006
Respostas 2
Participantes 2