在Hibernate中进行OneTONE映射时,如何更新数据库中的数据?

在Hibernate中进行OneTONE映射时,如何更新数据库中的数据?,hibernate,one-to-one,Hibernate,One To One,我有一个用户类,它包含一个带有OneToOne映射的address,当我试图运行它时,它并没有将数据插入到db(Postgres)中,我也没有得到任何错误 package com.hibernate.sample; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; i

我有一个用户类,它包含一个带有OneToOne映射的address,当我试图运行它时,它并没有将数据插入到db(Postgres)中,我也没有得到任何错误

package com.hibernate.sample;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Table(name="Siva01")
@Entity
public class UserClass {
   @Id  
   @GeneratedValue(strategy=GenerationType.AUTO)
   @Column(name = "UserId") 
   private int id ; 
   @Column(name = "UserName")
   private String userName;
   @OneToOne(cascade=CascadeType.PERSIST)
   @JoinColumn(name="AddressId")
   private Address shippingAddress; 


public Address getShippingAddress() {
    return shippingAddress;
}
public void setShippingAddress(Address shippingAddress) {
    this.shippingAddress = shippingAddress;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
} 
}
地址类别:

package com.hibernate.sample;

import javax.annotation.Generated;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Address {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id; 
    private String StreetName;
    private String city;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getStreetName() {
        return StreetName;
    }
    public void setStreetName(String streetName) {
        StreetName = streetName;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    } 
}
Hibernate.com配置文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.postgresql.Driver</property>
        <property name="connection.url">jdbc:postgresql://localhost:5432/hibernateDb</property>
        <property name="connection.username">postgres</property>
        <property name="connection.password">postgres</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <!-- "create" will recreate entire schema. This is used during initial design when the schemas go through frequent changes -->
        <!--  "update" will update the existing schema -->
        <property name="hbm2ddl.auto">update</property>

        <!--  Mapping XML (resource) or annotated class -->

        <mapping class="com.hibernate.sample.UserClass"/>
        <mapping class="com.hibernate.sample.Address"/> 
    </session-factory>

</hibernate-configuration>

org.postgresql.Driver
jdbc:postgresql://localhost:5432/hibernateDb
博士后
博士后
1.
org.hibernate.dialogue.PostgreSqlDialogue
线
org.hibernate.cache.internal.NoCacheProvider
真的
更新
日志::

Sep 7, 2014 9:39:28 AM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
Sep 7, 2014 9:39:28 AM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Sep 7, 2014 9:39:28 AM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000228: Running hbm2ddl schema update
Sep 7, 2014 9:39:28 AM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000102: Fetching database metadata
Sep 7, 2014 9:39:28 AM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000396: Updating schema


public class HibernateOne { // Inserts data code 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
           UserClass u1 = new UserClass(); 
           //u1.setId(4); 
           u1.setUserName("SaiRam"); 
           Address ad01 = new Address(); 
           ad01.setId(6);
           ad01.setStreetName("PamurRoad");
           ad01.setCity("Bangalore");           
           u1.setShippingAddress(ad01);
           Configuration cfg = new Configuration();
           cfg.configure("hibernate.cfg.xml");
       SessionFactory sessionFactory = cfg.buildSessionFactory(); 
           Session session = sessionFactory.openSession(); 
           Transaction tx = session.beginTransaction();
           session.persist(u1);
           tx.commit();
           session.close(); 
    } }
2014年9月7日上午9:39:28 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
信息:HH000399:使用默认事务策略(直接JDBC事务)
2014年9月7日上午9:39:28 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory
信息:HH000397:使用ASTQueryTranslatorFactory
2014年9月7日上午9:39:28 org.hibernate.tool.hbm2ddl.SchemaUpdate执行
信息:HH000228:正在运行hbm2ddl架构更新
2014年9月7日上午9:39:28 org.hibernate.tool.hbm2ddl.SchemaUpdate执行
信息:HH000102:正在获取数据库元数据
2014年9月7日上午9:39:28 org.hibernate.tool.hbm2ddl.SchemaUpdate执行
信息:HH000396:正在更新架构
公共类HibernateOne{//插入数据代码
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
UserClass u1=新的UserClass();
//u1.setId(4);
u1.设置用户名(“SaiRam”);
地址ad01=新地址();
ad01.setId(6);
ad01.setStreetName(“PamurRoad”);
ad01.塞特城(“班加罗尔”);
u1.设置ShippingAddress(ad01);
Configuration cfg=新配置();
configure(“hibernate.cfg.xml”);
SessionFactory SessionFactory=cfg.buildSessionFactory();
Session Session=sessionFactory.openSession();
事务tx=会话.beginTransaction();
会话。持续(u1);
tx.commit();
session.close();
} }

请说明我在上述代码中出错的地方。

update将数据插入数据库的代码和为此生成的相应日志在哪里?能否显示插入数据的代码片段?@Chaitanya-我添加了插入代码