Java.lang.NoSuchFieldError: STRING

5 respostas
R

Ola Pessoas,

Boa tarde.

Estou tentando fazer um join da tab2 com a tab1 usando Criteria. Por questões relacionadas
ao mapeamento das tabelas estou fazendo da seguinte maneira:

Consultacad consulta = (Consultacad) entity;

String tab2 = “SELECT STATLZ as status FROM tab2 b where b.bem = bem and b.inc = inc”;

Criteria criteria = sessao.createCriteria(tab1.class)

criteria.setProjection( Projections.projectionList()

.add(Property.forName(filial).as(cdfilial))

.add(Property.forName(bem).as(nrbem))

.add(Property.forName("descricao))

.add(Property.forName(custo))

.add(Property.forName(local))

.add(Projections.sqlProjection( tab2, new String[] { status }, new Type[] { Hibernate.STRING })));

List listaSQL = criteria.list();

Ao executar o list ocorre o erro:

java.lang.NoSuchFieldError: STRING

Alguém sabe como solucionar esse erro?

Desde já agradeço

Reginaldo

5 Respostas

E

http://community.jboss.org/thread/159874

R

Opa!!

Obrigado pela atenção…

Tentei essa solução… mas não consegui fazer compilar com o par

StandardBasicTypes.STRING

e org.hibernate.type.StandardBasicTypes

marcos4ft

criteria.setProjection( Projections.projectionList() .add(Property.forName("filial").as("cdfilial")) .add(Property.forName("bem").as("nrbem")) .add(Property.forName("descricao)) .add(Property.forName("custo")) .add(Property.forName("local")) .add(Projections.sqlProjection( tab2, new String[] { "status" }, new Type[] { Hibernate.STRING })));

Ta faltando uma aspas duplas em

.add(Property.forName("descricao))
R

Entãoo fiz duas alterações e resolvi:

primeira alteraçao
String tab2 = “( SELECT STATLZ FROM tab2 b where b.bem = this_.bem and b.inc = this_.inc ) as status )”;

Segunda alteraçao
.add(Projections.sqlProjection( tab2, new String[] { “status” }, new Type[] {})));

Simplesmente tirei a notação “Hibernate.STRING”

Funcionou.

Esse tal de Java é muito louco…

Reginaldo

R

Ah…

Então marcos4ft

Aquilo era só uma cópia simplificada do que esta realmente rodando…

De qualquer forma, obrigado.

Reginaldo

Criado 8 de novembro de 2011
Ultima resposta 8 de nov. de 2011
Respostas 5
Participantes 3