-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
 Post subject: Select updates data?!
PostPosted: Sat Jul 31, 2004 7:44 pm 
Beginner
Beginner

Joined: Sun Oct 12, 2003 2:14 pm
Posts: 25
Location: Zagreb, Croatia
I have problem in Hibernate 2.1.4, when I select data Hiberneta does update data in database. There is not "is dirty" in log, the only problem I saw is:

2004.08.01 01:19:16 net.sf.hibernate.util.ReflectHelper getBulkBean
INFO: reflection optimizer disabled for: sd.hibernate.Smjena, BulkBeanException: Cannot find specified property (property setPonedjeljak)

Here is code with line numbers, update is happen after line 49:

45: Query query=session.createQuery("FROM Smjena AS s ORDER BY s.odjel.naziv, s.djelatnikSkupina.ime, s.naziv");
47: result=query.list();
49: tran.commit();
51:

45:
47:
Hibernate: select smjena0_.SMJENA_ID as SMJENA_ID, smjena0_.NAZIV as NAZIV, smjena0_.POCETAK as POCETAK, smjena0_.KRAJ as KRAJ, smjena0_.TRAJANJE as TRAJANJE, smjena0_.PONEDJELJAK as PONEDJEL6_, smjena0_.UTORAK as UTORAK, smjena0_.SRIJEDA as SRIJEDA, smjena0_.CETVRTAK as CETVRTAK, smjena0_.PETAK as PETAK, smjena0_.SUBOTA as SUBOTA, smjena0_.NEDJELJA as NEDJELJA, smjena0_.ODJEL_ID as ODJEL_ID, smjena0_.DJELATNIK_SKUPINA_ID as DJELATN14_ from SD.SMJENA smjena0_, SD.ODJEL odjel1_, SD.DJELATNIK_SKUPINA djelatniks2_ where smjena0_.ODJEL_ID=odjel1_.ODJEL_ID and smjena0_.DJELATNIK_SKUPINA_ID=djelatniks2_.DJELATNIK_SKUPINA_ID order by odjel1_.NAZIV , djelatniks2_.IME , smjena0_.NAZIV

Hibernate: select odjel0_.ODJEL_ID as ODJEL_ID0_, odjel0_.NAZIV as NAZIV0_ from SD.ODJEL odjel0_ where odjel0_.ODJEL_ID=?

Hibernate: select djelatniks0_.DJELATNIK_SKUPINA_ID as DJELATNI1_0_, djelatniks0_.IME as IME0_ from SD.DJELATNIK_SKUPINA djelatniks0_ where djelatniks0_.DJELATNIK_SKUPINA_ID=?

Hibernate: select smjene0_.SMJENA_ID as SMJENA_ID__, smjene0_.DJELATNIK_SKUPINA_ID as DJELATN14___, smjene0_.SMJENA_ID as SMJENA_ID1_, smjene0_.NAZIV as NAZIV1_, smjene0_.POCETAK as POCETAK1_, smjene0_.KRAJ as KRAJ1_, smjene0_.TRAJANJE as TRAJANJE1_, smjene0_.PONEDJELJAK as PONEDJEL6_1_, smjene0_.UTORAK as UTORAK1_, smjene0_.SRIJEDA as SRIJEDA1_, smjene0_.CETVRTAK as CETVRTAK1_, smjene0_.PETAK as PETAK1_, smjene0_.SUBOTA as SUBOTA1_, smjene0_.NEDJELJA as NEDJELJA1_, smjene0_.ODJEL_ID as ODJEL_ID1_, smjene0_.DJELATNIK_SKUPINA_ID as DJELATN14_1_, odjel1_.ODJEL_ID as ODJEL_ID0_, odjel1_.NAZIV as NAZIV0_ from SD.SMJENA smjene0_ left outer join SD.ODJEL odjel1_ on smjene0
_.ODJEL_ID=odjel1_.ODJEL_ID where smjene0_.DJELATNIK_SKUPINA_ID=?

Hibernate: select djelatnici0_.DJELATNIK_ID as DJELATNI1___, djelatnici0_.DJELATNIK_SKUPINA_ID as DJELATNI4___, djelatnici0_.DJELATNIK_ID as DJELATNI1_1_, djelatnici0_.IME as IME1_, djelatnici0_.PREZIME as PREZIME1_, djelatnici0_.DJELATNIK_SKUPINA_ID as DJELATNI4_1_, djelatnici0_.ODJEL_ID as ODJEL_ID1_, odjel1_.ODJEL_ID as ODJEL_ID0_, odjel1_.NAZIV as NAZIV0_ from SD.DJELATNIK djelatnici0_ left outer join SD.ODJEL odjel1_ on djelatnici0_.ODJEL_ID=odjel1_.ODJEL_ID where djelatnici0_.DJELATNIK_SKUPINA_ID=?

Hibernate: select smjene0_.SMJENA_ID as SMJENA_ID__, smjene0_.ODJEL_ID as ODJEL_ID__, smjene0_.SMJENA_ID as SMJENA_ID1_, smjene0_.NAZIV as NAZIV1_, smjene0_.POCETAK as POCETAK1_, smjene0_.KRAJ as KRAJ1_, smjene0_.TRAJANJE as TRAJANJE1_, smjene0_.PONEDJELJAK as PONEDJEL6_1_, smjene0_.UTORAK as UTORAK1_, smjene0_.SRIJEDA as SRIJEDA1_, smjene0_.CETVRTAK as CETVRTAK1_, smjene0_.PETAK as PETAK1_, smjene0_.SUBOTA as SUBOTA1_, smjene0_.NEDJELJA as NEDJELJA1_, smjene0_.ODJEL_ID as ODJEL_ID1_, smjene0_.DJELATNIK_SKUPINA_ID as DJELATN14_1_, djelatniks1_.DJELATNIK_SKUPINA_ID as DJELATNI1_0_, djelatniks1_.IME as IME0_ from SD.SMJENA smjene0_ left outer join SD.DJELATNIK_SKUPINA djelatniks1_ on smjene0_.DJELATNIK_SKUPINA_ID=djelatniks1_.DJELATNIK_SKUPINA_ID where smjene0_.ODJEL_ID=?

Hibernate: select voditelji0_.ODJEL_VODITELJ_ID as ODJEL_VO1___, voditelji0_.ODJEL_ID as ODJEL_ID__, voditelji0_.ODJEL_VODITELJ_ID as ODJEL_VO1_3_, voditelji0_.ODJEL_ID as ODJEL_ID3_, voditelji0_.DJELATNIK_ID as DJELATNI3_3_, djelatnik1_.DJELATNIK_ID as DJELATNI1_0_, djelatnik1_.IME as IME0_, djelatnik1_.PREZIME as PREZIME0_, djelatnik1_.DJELATNIK_SKUPINA_ID as DJELATNI4_0_, djelatnik1_.ODJEL_ID as ODJEL_ID0_, djelatniks2_.DJELATNIK_SKUPINA_ID as DJELATNI1_1_, djelatniks2_.IME as IME1_, odjel3_.ODJEL_ID as ODJEL_ID2_, odjel3_.NAZIV as NAZIV2_ from SD.ODJEL_VODITELJ voditelji0_ left outer join SD.DJELATNIK djelatnik1_ on voditelji0_.DJELATNIK_ID=djelatnik1_.DJELATNIK_
ID left outer join SD.DJELATNIK_SKUPINA djelatniks2_ on djelatnik1_.DJELATNIK_SKUPINA_ID=djelatniks2_.DJELATNIK_SKUPINA_ID left outer join SD.ODJEL odjel3_ on djelatnik1_.ODJEL_ID=odjel3_.ODJEL_ID where voditelji0_.ODJEL_ID=?

Hibernate: select djelatnici0_.DJELATNIK_ID as DJELATNI1___, djelatnici0_.ODJEL_ID as ODJEL_ID__, djelatnici0_.DJELATNIK_ID as DJELATNI1_1_, djelatnici0_.IME as IME1_, djelatnici0_.PREZIME as PREZIME1_, djelatnici0_.DJELATNIK_SKUPINA_ID as DJELATNI4_1_, djelatnici0_.ODJEL_ID as ODJEL_ID1_, djelatniks1_.DJELATNIK_SKUPINA_ID as DJELATNI1_0_, djelatniks1_.IME as IME0_ from SD.DJELATNIK djelatnici0_ left outer join SD.DJELATNIK_SKUPINA djelatniks1_ on djelatnici0_.DJELATNIK_SKUPINA_ID=djelatniks1_.DJELATNIK_SKUPINA_ID where djelatnici0_.ODJEL_ID=?

Hibernate: select sobe0_.SOBA_ID as SOBA_ID__, sobe0_.ODJEL_ID as ODJEL_ID__, sobe0_.SOBA_ID as SOBA_ID0_, sobe0_.IME as IME0_, sobe0_.KUPANJE_DAN as KUPANJE_3_0_, sobe0_.ODJEL_ID as ODJEL_ID0_ from SD.SOBA sobe0_ where sobe0_.ODJEL_ID=?
49:
2004.08.01 01:19:24 net.sf.hibernate.connection.DriverManagerConnectionProvider close

INFO: cleaning up connection pool: jdbc:mckoi:local://mckoi1.0.2/db.conf

Hibernate: update SD.SMJENA set NAZIV=?, POCETAK=?, KRAJ=?, TRAJANJE=?, PONEDJELJAK=?, UTORAK=?, SRIJEDA=?, CETVRTAK=?, PETAK=?, SUBOTA
=?, NEDJELJA=?, ODJEL_ID=?, DJELATNIK_SKUPINA_ID=? where SMJENA_ID=?
51:

Why is this update happaning? Here are mappings:

<class name="sd.hibernate.Smjena" table="SMJENA">
<id name="smjenaId" column="SMJENA_ID">
<generator class="native" />
</id>

<property name="naziv" type="string" unique="true">
<column name="NAZIV" not-null="true" sql-type="VARCHAR(45) COLLATE 'hrHR'"/>
</property>

<property name="pocetak" type="time">
<column name="POCETAK" not-null="true" />
</property>

<property name="kraj" type="time">
<column name="KRAJ" not-null="true" />
</property>

<property name="trajanje" type="time">
<column name="TRAJANJE" not-null="true" />
</property>

<property name="ponedjeljak" type="char" length="1">
<column name="PONEDJELJAK" not-null="true" />
</property>

<property name="utorak" type="char" length="1">
<column name="UTORAK" not-null="true" />
</property>

<property name="srijeda" type="char" length="1">
<column name="SRIJEDA" not-null="true" />
</property>

<property name="cetvrtak" type="char" length="1">
<column name="CETVRTAK" not-null="true" />
</property>

<property name="petak" type="char" length="1">
<column name="PETAK" not-null="true" />
</property>

<property name="subota" type="char" length="1">
<column name="SUBOTA" not-null="true" />
</property>

<property name="nedjelja" type="char" length="1">
<column name="NEDJELJA" not-null="true" />
</property>

<many-to-one name="odjel" column="ODJEL_ID" class="sd.hibernate.Odjel" not-null="true" />

<many-to-one name="djelatnikSkupina" column="DJELATNIK_SKUPINA_ID" class="sd.hibernate.DjelatnikSkupina" not-null="true" />

</class>

<class name="sd.hibernate.Odjel" table="ODJEL">
<id name="odjelId" column="ODJEL_ID">
<generator class="native" />
</id>

<property name="naziv" type="string">
<column name="NAZIV" not-null="true" unique="true" sql-type="VARCHAR(45) COLLATE 'hrHR'"/>
</property>

<set name="sobe" cascade="all" inverse="true">
<key column="ODJEL_ID" />
<one-to-many class="sd.hibernate.Soba"/>
</set>

<set name="djelatnici" cascade="all" inverse="true">
<key column="ODJEL_ID" />
<one-to-many class="sd.hibernate.Djelatnik"/>
</set>

<set name="voditelji" cascade="all" inverse="true">
<key column="ODJEL_ID" />
<one-to-many class="sd.hibernate.OdjelVoditelj"/>
</set>

<set name="smjene" cascade="all" inverse="true">
<key column="ODJEL_ID" />
<one-to-many class="sd.hibernate.Smjena"/>
</set>
</class>

<class name="sd.hibernate.DjelatnikSkupina" table="DJELATNIK_SKUPINA">
<id name="djelatnikSkupinaId" column="DJELATNIK_SKUPINA_ID">
<generator class="native" />
</id>

<property name="ime" type="string">
<column name="IME" not-null="true" unique="true" sql-type="VARCHAR(45) COLLATE 'hrHR'"/>
</property>

<set name="djelatnici" cascade="all" inverse="true">
<key column="DJELATNIK_SKUPINA_ID" />
<one-to-many class="sd.hibernate.Djelatnik"/>
</set>

<set name="smjene" cascade="all" inverse="true">
<key column="DJELATNIK_SKUPINA_ID" />
<one-to-many class="sd.hibernate.Smjena"/>
</set>
</class>

<class name="sd.hibernate.Soba" table="SOBA">
<id name="sobaId" column="SOBA_ID">
<generator class="native" />
</id>

<property name="ime" type="string">
<column name="IME" not-null="true" unique="true" sql-type="VARCHAR(20) COLLATE 'hrHR'"/>
</property>

<property name="kupanjeDan" type="char">
<column name="KUPANJE_DAN" length="1" not-null="true"/>
</property>

<many-to-one name="odjel" column="ODJEL_ID" not-null="true" />
</class>

<class name="sd.hibernate.OdjelVoditelj" table="ODJEL_VODITELJ">
<id name="odjelVoditeljId" column="ODJEL_VODITELJ_ID">
<generator class="native" />
</id>

<many-to-one name="odjel" column="ODJEL_ID" not-null="true" unique="true" />

<many-to-one name="djelatnik" column="DJELATNIK_ID" not-null="true" unique="true" />
</class>


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 31, 2004 7:46 pm 
Hibernate Team
Hibernate Team

Joined: Mon Aug 25, 2003 9:11 pm
Posts: 4592
Location: Switzerland
Hibernate flushes the Session state to the database before executing a HQL or Criteria or native SQL query, because this is what you usually want. The query result should include the changes you made in the Session. If you are sure that you didn't touch any of the data related to your query, you can set a FlushMode, see the documentation.

_________________
JAVA PERSISTENCE WITH HIBERNATE
http://jpwh.org
Get the book, training, and consulting for your Hibernate team.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 31, 2004 7:53 pm 
Beginner
Beginner

Joined: Sun Oct 12, 2003 2:14 pm
Posts: 25
Location: Zagreb, Croatia
There is one odd thing, most columns id db was CHAR(1) with values '0' or '1'. Hibernate change them all to 'f'.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 31, 2004 8:03 pm 
Hibernate Team
Hibernate Team

Joined: Mon Aug 25, 2003 9:11 pm
Posts: 4592
Location: Switzerland
Maybe because its a boolean and you have to map them appropriately? There are several boolean mapping types bundled with Hibernate.

_________________
JAVA PERSISTENCE WITH HIBERNATE
http://jpwh.org
Get the book, training, and consulting for your Hibernate team.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 31, 2004 8:09 pm 
Beginner
Beginner

Joined: Sun Oct 12, 2003 2:14 pm
Posts: 25
Location: Zagreb, Croatia
No, there are all java type Character, not char, and in database colums is CHAR(1). I am using boolean in application, but so fat, I didn't write any code for updating or inserting SMJENA table.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 31, 2004 8:18 pm 
Beginner
Beginner

Joined: Sun Oct 12, 2003 2:14 pm
Posts: 25
Location: Zagreb, Croatia
It seams that was to many bidirectional relations. I removed sets from Odjel and DjelatnikSkupina that ware one-to-many relations and now Hibernate is not performing update on select. I don't have the solution, but I fixed the problem.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.