Java/Hibernate/Update

Материал из Java эксперт
Перейти к: навигация, поиск

Simple Update

   <source lang="java">

///////////////////////////////////////////////////////////////////////// import java.util.Date; import org.hibernate.Session; import org.hibernate.Transaction; public class SimpleUpdateTest {


 public static void main(String[] args) {
   HibernateUtil.setup("create table EVENTS ( EVENT_ID int, EVENT_DATE date, title VARCHAR);");
   // hibernate code start
   Session session = HibernateUtil.currentSession();
   Transaction tx = session.beginTransaction();
   Event theEvent = new Event();
   theEvent.setTitle("My Event");
   theEvent.setDate(new Date());
   session.save(theEvent);
   tx.rumit();
   HibernateUtil.closeSession();
   HibernateUtil.sessionFactory.close();
   // hibernate code end
   
   update();
   
   HibernateUtil.checkData("select * from events;");
 }
   public static void update(){
     Session session = HibernateUtil.currentSession();
     Transaction tx = session.beginTransaction();
   
     Event e = (Event)session.get(Event.class, new Long(1));
     
     e.setTitle("new Title");
     session.update(e);
     
     tx.rumit();
     HibernateUtil.closeSession();
     
   }

}

///////////////////////////////////////////////////////////////////////// <?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="Event" table="EVENTS">
       <id name="id" column="EVENT_ID">
           <generator class="increment"/>
       </id>
       <property name="date" type="timestamp" column="EVENT_DATE"/>
       <property name="title"/>
   </class>


   <class name="EventWithAttendee" table="eventwithattendee">
       <id name="id" column="uid" type="long" unsaved-value="null">
           <generator class="native"/>
       </id>
       <property name="name" type="string" length="100"/>
       <property name="startDate" column="start_date"
                 type="date"/>
       <property name="duration" type="integer"/>
       <many-to-one name="location" column="location_id"
                    class="Location"/>
       <set name="attendees" cascade="all">
           <key column="event_id"/>
           <one-to-many class="EventAttendee"/>
       </set>
   </class>
   <class name="EventAttendee" table="attendees">
       <id name="id" column="uid" type="long">
           <generator class="native"/>
       </id>
       <property name="firstName" type="string" length="20"/>
       <property name="lastName" type="string" length="20"/>
   </class>
   <class name="Location" table="locations">
       <id name="id" column="uid" type="long">
           <generator class="native"/>
       </id>
       <property name="name" type="string"/>
       <property name="address" type="string"/>
   </class>

</hibernate-mapping>

/////////////////////////////////////////////////////////////////////////

import java.util.Date; public class Event {

 private Long id;
 private String title;
 private Date date;
 Event() {
 }
 public Long getId() {
   return id;
 }
 private void setId(Long id) {
   this.id = id;
 }
 public Date getDate() {
   return date;
 }
 public void setDate(Date date) {
   this.date = date;
 }
 public String getTitle() {
   return title;
 }
 public void setTitle(String title) {
   this.title = title;
 }
 public String toString() {
   return "ID:" + id + "\nTitle:" + title + "\nDate:" + date;
 }

}

///////////////////////////////////////////////////////////////////////// <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC

       "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

   <session-factory>
       
       <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
       <property name="connection.url">jdbc:hsqldb:data/tutorial</property>
       <property name="connection.username">sa</property>
       <property name="connection.password"></property>
       
       <property name="connection.pool_size">1</property>
       
       <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
       
       <property name="show_sql">true</property>
       <mapping resource="Event.hbm.xml"/>
   </session-factory>

</hibernate-configuration>

      </source>