peczenyj 4 de jun. de 2010
Me desculpe mas, vc tem que dar uma volta danada para encontrar o estado a partir de um municipio heim?
Nao vejo pq vc não possa fazer
municipio.getMicroregiao()
municipio.getMesoregiao()
municipio.getEstado()
seria algo como
Class Municipio {
Microregiao getMicroregiao(){ return this.microregiao; }
Mesoregiao getMesoregiao() {return this.microregiao.getMesoregiao(); }
Estado getEstado() {return this.getMesoregiao().getEstado(); }
}
Bastaria vc ter gets inteligentes, não get/set gerado automagicamente.
Quanto ao seu problema, seria bom informar mais detalhes, tipo qual erro vc encontra, etc.
cvinicios 4 de jun. de 2010
peczenyj vçw pela dica, vou implementar
o erro que acontece é:
04 / 06 / 2010 14 : 29 : 59 org . apache . catalina . core . StandardWrapperValve invoke
SEVERE : Servlet . service () for servlet default threw exception
br . com . caelum . vraptor . InterceptionException : org . hibernate . QueryException : could not resolve property : microregiao . mesoregiao . estado of : smcv . modelo . territorio . Municipio
at br . com . caelum . vraptor . interceptor . ExecuteMethodInterceptor . intercept ( ExecuteMethodInterceptor . java : 77 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 46 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 48 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . interceptor . ParametersInstantiatorInterceptor . intercept ( ParametersInstantiatorInterceptor . java : 77 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 46 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . interceptor . InstantiateInterceptor . intercept ( InstantiateInterceptor . java : 42 )
at br . com . caelum . vraptor . core . InstantiatedInterceptorHandler . execute ( InstantiatedInterceptorHandler . java : 41 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . util . hibernate . HibernateTransactionInterceptor . intercept ( HibernateTransactionInterceptor . java : 45 )
at br . com . caelum . vraptor . core . InstantiatedInterceptorHandler . execute ( InstantiatedInterceptorHandler . java : 41 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . interceptor . InterceptorListPriorToExecutionExtractor . intercept ( InterceptorListPriorToExecutionExtractor . java : 46 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 46 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . interceptor . FlashInterceptor . intercept ( FlashInterceptor . java : 80 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 46 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . interceptor . ResourceLookupInterceptor . intercept ( ResourceLookupInterceptor . java : 67 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 46 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . core . ToInstantiateInterceptorHandler . execute ( ToInstantiateInterceptorHandler . java : 48 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . next ( DefaultInterceptorStack . java : 59 )
at br . com . caelum . vraptor . core . DefaultRequestExecution . execute ( DefaultRequestExecution . java : 62 )
at br . com . caelum . vraptor . VRaptor $ 1. insideRequest ( VRaptor . java : 91 )
at br . com . caelum . vraptor . ioc . spring . SpringProvider . provideForRequest ( SpringProvider . java : 55 )
at br . com . caelum . vraptor . VRaptor . doFilter ( VRaptor . java : 88 )
at org . apache . catalina . core . ApplicationFilterChain . internalDoFilter ( ApplicationFilterChain . java : 235 )
at org . apache . catalina . core . ApplicationFilterChain . doFilter ( ApplicationFilterChain . java : 206 )
at org . apache . catalina . core . StandardWrapperValve . invoke ( StandardWrapperValve . java : 233 )
at org . apache . catalina . core . StandardContextValve . invoke ( StandardContextValve . java : 191 )
at org . apache . catalina . core . StandardHostValve . invoke ( StandardHostValve . java : 128 )
at org . apache . catalina . valves . ErrorReportValve . invoke ( ErrorReportValve . java : 102 )
at org . apache . catalina . core . StandardEngineValve . invoke ( StandardEngineValve . java : 109 )
at org . apache . catalina . connector . CoyoteAdapter . service ( CoyoteAdapter . java : 293 )
at org . apache . coyote . http11 . Http11Processor . process ( Http11Processor . java : 849 )
at org . apache . coyote . http11 . Http11Protocol $ Http11ConnectionHandler . process ( Http11Protocol . java : 583 )
at org . apache . tomcat . util . net . JIoEndpoint $ Worker . run ( JIoEndpoint . java : 454 )
at java . lang . Thread . run ( Unknown Source )
Caused by : org . hibernate . QueryException : could not resolve property : microregiao . mesoregiao . estado of : smcv . modelo . territorio . Municipio
at org . hibernate . persister . entity . AbstractPropertyMapping . propertyException ( AbstractPropertyMapping . java : 67 )
at org . hibernate . persister . entity . AbstractPropertyMapping . toColumns ( AbstractPropertyMapping . java : 82 )
at org . hibernate . persister . entity . BasicEntityPropertyMapping . toColumns ( BasicEntityPropertyMapping . java : 54 )
at org . hibernate . persister . entity . AbstractEntityPersister . toColumns ( AbstractEntityPersister . java : 1367 )
at org . hibernate . loader . criteria . CriteriaQueryTranslator . getColumns ( CriteriaQueryTranslator . java : 457 )
at org . hibernate . loader . criteria . CriteriaQueryTranslator . getColumnsUsingProjection ( CriteriaQueryTranslator . java : 417 )
at org . hibernate . criterion . SimpleExpression . toSqlString ( SimpleExpression . java : 68 )
at org . hibernate . loader . criteria . CriteriaQueryTranslator . getWhereCondition ( CriteriaQueryTranslator . java : 357 )
at org . hibernate . loader . criteria . CriteriaJoinWalker .< init > ( CriteriaJoinWalker . java : 113 )
at org . hibernate . loader . criteria . CriteriaJoinWalker .< init > ( CriteriaJoinWalker . java : 82 )
at org . hibernate . loader . criteria . CriteriaLoader .< init > ( CriteriaLoader . java : 91 )
at org . hibernate . impl . SessionImpl . list ( SessionImpl . java : 1578 )
at org . hibernate . impl . CriteriaImpl . list ( CriteriaImpl . java : 306 )
at smcv . dao . territorio . MunicipioDao . adicionar ( MunicipioDao . java : 32 )
at smcv . controller . MunicipioController . adicionar ( MunicipioController . java : 63 )
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at br . com . caelum . vraptor . interceptor . ExecuteMethodInterceptor . intercept ( ExecuteMethodInterceptor . java : 50 )
... 40 more
04 / 06 / 2010 14 : 52 : 08 org . apache . catalina . core . StandardContext reload
INFO : Reloading this Context has started
cvinicios 4 de jun. de 2010
alguém pode me ajudar a “converter” esse código sql para hql ?
select * from municipio m where exists(
SELECT id FROM MICROREGIAO mr where exists(
SELECT id FROM MESOREGIAO msr WHERE ESTADO_ID=‘35’ and msr.id=mr.mesoregiao_id) and m.microregiao_id=mr.id ) and nome=‘X’
ele funciona do modo que eu quero.
obrigado.