Galera, eu tô com um problema e já tentei resolver de várias maneiras de acordo com os posts aqui do guj e mais coisas encontradas no grande oráculo(google) mas nada resolve meu problema.
Quero mapear uma view no hibernate e ela não tem um id nem um campo que seja chave primária.
Acho que estou perto da solução mas ainda tem algo errado. Criei a view com um campo que pode ser a id, numerando a linhas do Resul Set.
Código da View no SQLServer 2008SELECT ROW_NUMBER() OVER (ORDER BY idEstacao) AS id, *
FROM (SELECT c.idEstacao, 'Cota 2 leituras' AS TipoRegistro, min(c.data) AS Inicio, max(c.data) AS Fim
FROM cota c INNER JOIN
nivelConsistencia n ON c.idNivelConsistencia = n.idNivelConsistencia
GROUP BY c.idEstacao, n.nivelConsistencia
UNION
SELECT c.idEstacao, 'Cota Média' AS TipoRegistro, min(c.data) AS Inicio, max(c.data) AS Fim
FROM cotamedia c INNER JOIN
nivelConsistencia n ON n.idNivelConsistencia = 2
GROUP BY c.idEstacao, n.nivelConsistencia) A
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="br.gov.ana.Beans.VwEstacaoSerie">
<id name="id">
<generator class="native"/>
</id>
<property name="idEstacao"/>
<property name="tipoRegistro"/>
<property name="inicio"/>
<property name="fim"/>
</class>
</hibernate-mapping>
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at br.gov.ana.DAO.Persistencia.lista(Persistencia.java:90)
at br.gov.ana.BO.Serie.selecionarSerie(Serie.java:14)
at br.gov.ana.GUI.SelecionarSerie.btAdicionarActionPerformed(SelecionarSerie.java:178)
at br.gov.ana.GUI.SelecionarSerie.access$000(SelecionarSerie.java:10)
at br.gov.ana.GUI.SelecionarSerie$2.actionPerformed(SelecionarSerie.java:70)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.sql.SQLException: Invalid object name 'VwEstacaoSerie'.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 37 more
Vlw pela força, e é essa força que faz a comunidade JAVA ser o que é!!!