kaique:
Cara…basta vc deixar os nomes das tabelas em minusculo q o banco nao vai reclamar disso…
Tb jah perdi mo tempao com isso uma vez…kuase q desistia de usar o hibernate com o postgre…mas se tu fizer isso q te falei funciona na limpeza…
Vlw!
Oi, tudo bom, eu estou tentando mapear duas tabelas no hibernate mas não estou conseguindo, você poderia me dar uma mão?
Se você puser ficarei muito agradecido faz tempo que tento resolver e não consigo, obrigado. Esses são os códigos que eu fiz no xml e no sql, eu estou usando o postgres 8.3.
view plaincopy to clipboardprint?
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
-
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-
- <hibernate-mapping>
-
<class name="beans.departamento"
-
-
<id name="id_departamento" column="id_departamento" type="int">
-
<generator class="increment"/>
-
-
<property name="nome" type="java.lang.String"/>
-
<property name="sigla" type="java.lang.String"
-
-
<!-- Mapeamento dos cursos -->
-
<set name="curso" table="departamento_curso"
-
-
<key column="id_departamento"/>
-
<many-to-many column="id_curso"
-
-
-
- </hibernate-mapping>
<?xml version=“1.0”?> <!DOCTYPE hibernate-mapping PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN” “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”> <hibernate-mapping> <class name=“beans.departamento” table=“departamento”> <id name=“id_departamento” column=“id_departamento” type=“int”> <generator class=“increment”/> </id> <property name=“nome” type=“java.lang.String”/> <property name=“sigla” type=“java.lang.String” /> <!-- Mapeamento dos cursos --> <set name=“curso” table=“departamento_curso” inverse=“true”> <key column=“id_departamento”/> <many-to-many column=“id_curso” class=“beans.curso”/> </set> </class> </hibernate-mapping>
view plaincopy to clipboardprint?
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
-
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
- <hibernate-mapping>
-
<class name="beans.curso" table="curso">
-
<id name="id_curso" column="id_curso" type="int">
-
<generator class="increment"/>
-
-
<property name="codigo"/>
-
<property name="nome"/>
-
<property name="sigla"/>
-
-
-
<!-- Mapeamento dos departamentos-->
-
<set name="departamento" table="departamento_curso">
-
<key column="id_curso"/>
-
<many-to-many column="id_departamento"
-
class="beans.departamento"/>
-
-
- </hibernate-mapping>
<?xml version=“1.0”?> <!DOCTYPE hibernate-mapping PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN” “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”> <hibernate-mapping> <class name=“beans.curso” table=“curso”> <id name=“id_curso” column=“id_curso” type=“int”> <generator class=“increment”/> </id> <property name=“codigo”/> <property name=“nome”/> <property name=“sigla”/> <!-- Mapeamento dos departamentos–> <set name=“departamento” table=“departamento_curso”> <key column=“id_curso”/> <many-to-many column=“id_departamento” class=“beans.departamento”/> </set> </class> </hibernate-mapping>
view plaincopy to clipboardprint?
- CREATE TABLE curso (
- id_curso int,
- codigo int,
- nome varchar,
- sigla var,
- id int REFERENCES aluno,
- PRIMARY KEY (id_curso)
- );
CREATE TABLE curso ( id_curso int, codigo int, nome varchar, sigla var, id int REFERENCES aluno, PRIMARY KEY (id_curso) );
view plaincopy to clipboardprint?
- CREATE TABLE departamento_curso (
- id_departamento int REFERENCES departamento,
- id_curso int REFERENCES curso
- );
CREATE TABLE departamento_curso ( id_departamento int REFERENCES departamento, id_curso int REFERENCES curso );
view plaincopy to clipboardprint?
- CREATE TABLE departamento (
- id_departamento int,
- nome varchar,
- sigla varchar,
- id_curso int REFERENCES curso,
- PRIMARY KEY (id_departamento)
- );
CREATE TABLE departamento ( id_departamento int, nome varchar, sigla varchar, id_curso int REFERENCES curso, PRIMARY KEY (id_departamento) );
Os erros que aparecem no hibernate são esses:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.exception.SQLGrammarException: could not fetch initial value
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:107)
at org.hibernate.id.IncrementGenerator.generate(IncrementGenerator.java:45)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:85)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
at teste.TesteCurso.main(TesteCurso.java:71)
Caused by: org.postgresql.util.PSQLException: ERROR: relation “departamento” does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:89)
… 10 more
se puder me ajudar eu agradeço muito []s.