EU TENHO UM LISTERBOX E UM CAMPO PARA DIGITAR A PESQUISA, NO LISTERBOX TENHO TITULO E ARTISTA, E NA PESQUISA O USUARIO DIGITA O QUE QUISER.
MAIS NÃO CONSIGO FAZER FUNCIONAR ASSIM, ESTÁ FUNCIONANDO SOMENTE A PESQUISA SIMPLES, NÃO SEI COMO ADICIONAR O PARAMETRO DO LISTEBOX NA PESQUISA.
FONTES:
Code:
package br.com.caelum.lojavirtual.modelo;
public enum CdType {
ARTISTA, TITULO;
}
Code:
<form action=“cd.search.logic”>
<tr><td>
<fmt:message key=“titulo”/>
</td>
<td>
<select name="CdType">
<option value="ARTISTA"><fmt:message key="ARTISTA"/></option>
<option value="TITULO"><fmt:message key="TITULO"/></option>
</select>
<input autocomplete="off" id="cdTitulo" name="cd.titulo" />
<BUTTON type="submit" id="pretty" title="ATENÇÃO: ${usuario.login} - Click aqui para pesquisar por título" >Pesquisar<IMG ></BUTTON>
</td></tr>
</form>
Code:
package br.com.caelum.lojavirtual.modelo;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull;
@Entity
public class Cd {
@Id
@GeneratedValue
private Long id;
@NotNull(message="Título do Cd não poder ser vazio")
@NotEmpty(message="Título do Cd não poder ser vazio")
private String titulo;
private String artista;
private String genero;
private String imagemCapa;
@OneToMany(mappedBy="cd")
private List<Musica> musicas;
//enumeração
@Enumerated(EnumType.STRING)
private CdType type;
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public List<Musica> getMusicas() {
return musicas;
}
public void setMusicas(List<Musica> musicas) {
this.musicas = musicas;
}
public String getImagemCapa() {
return imagemCapa;
}
public void setImagemCapa(String imagemCapa) {
this.imagemCapa = imagemCapa;
}
public void getTitlo() {
}
/*
// get set
public CdType getType() {
return type;
}
public void setType(CdType type) {
this.type = type;
}
*/
}
Code:
package br.com.caelum.lojavirtual.dao;
import br.com.caelum.lojavirtual.modelo.Usuario;
import org.hibernate.Query;
import org.hibernate.Session;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.lojavirtual.modelo.Cd;
import org.vraptor.annotations.Logic;
public class CdDao {
private Session session;
CdDao(Session session) {
this.session = session;
}
public void add(Cd cd) {
session.save(cd);
}
@SuppressWarnings("unchecked")
public List<Cd> searchSimilarTitulo(String titulo) {
return session.createCriteria(Cd.class).add(
Restrictions.ilike("titulo", "%" + titulo + "%")).list();
}
@SuppressWarnings("unchecked")
public List<Cd> searchSimilarArtista(String artista) {
return session.createCriteria(Cd.class).add(
Restrictions.ilike("artista", "%" + artista + "%")).list();
}
}
me retonar o erro quando tento acessar, depois que eu coloco:
@Enumerated(EnumType.STRING)
private CdType type;
o erro é este :
Code:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: could not execute query
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:95)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
root cause
org.hibernate.exception.SQLGrammarException: could not execute query
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.loader.Loader.doList(Loader.java:2214)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
org.hibernate.loader.Loader.list(Loader.java:2090)
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
br.com.caelum.lojavirtual.dao.Dao.listaTodos(Dao.java:41)
br.com.caelum.lojavirtual.logic.CdLogic.lista(CdLogic.java:47)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:117)
org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:37)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
br.com.caelum.lojavirtual.logic.AutorizadorInterceptor.intercept(AutorizadorInterceptor.java:28)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
br.com.caelum.lojavirtual.logic.DaoInterceptor.intercept(DaoInterceptor.java:24)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:88)
org.vraptor.core.DefaultController.execute(DefaultController.java:42)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
Apache Tomcat/5.5.17