Java.lang.NoSuchFieldError: STRING

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

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

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

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)) 

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

Ah…

Então marcos4ft

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

De qualquer forma, obrigado.

Reginaldo