hibernate配置

zuomingyu2 2009-09-19 12:59:49
Room.java Room.hbm.xml User.java User.hbm.xml 代码在后面
我save了2个User 但是只有
Hibernate: insert into t_User (age, sex, phone, address, room_id) values (?, ?, ?, ?, ?)
Hibernate: insert into t_User (age, sex, phone, address, room_id) values (?, ?, ?, ?, ?)
room_id里都为null

但是并没有 insert into Room()自动生成表的时候t_User里有room_id这个字段
在配置文件里有这个
<mapping resource="com/User.hbm.xml" />
<mapping resource="com/Room.hbm.xml" />


public void testSave(){
Session session=null;
try{
session=HibernateSessionFactoy.getSession();
session.beginTransaction();
//保存对象

Room room=new Room();
room.setRoomName("听雨轩");

User user1=new User();
user1.setAddress("第1个地址");

User user2=new User();
user2.setAddress("第2个地址");

session.save(user1);
session.save(user2);
session.getTransaction().commit();
}catch(HibernateException e){
if(session.getTransaction().isActive())
session.getTransaction().rollback();
e.printStackTrace();
}finally{
HibernateSessionFactoy.closeSession(session);
}

}



Room.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">



<hibernate-mapping package="com">
<class name="Room" table="t_Room"><!-- 表 -->
<id name="id" column="room_id" >
<generator class="native"></generator>
</id>
<property name="roomName" unique="true" not-null="true" column="room_name" length="32"/>
</class>
</hibernate-mapping>


Room.java

package com;

public class Room {

private int id;
private String roomName;


public int getId() {
return id;
}
public String getRoomName() {
return roomName;
}
public void setRoomName(String roomName) {
this.roomName = roomName;
}
public void setId(int id) {
this.id = id;
}
}


User.hbm.xml


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">



<hibernate-mapping package="com">
<class name="User" table="t_User"><!-- 表 -->
<id name="id" column="id">
<generator class="native"></generator>
</id>

<property name="age" column="age" length="32" type="java.lang.Integer"/>
<property name="sex" column="sex" length="32" type="java.lang.String"/>
<property name="phone" column="phone" length="32" type="java.lang.String"/>
<property name="address" column="address" length="32" type="java.lang.String"/>

<many-to-one name="room" class="Room" column="room_id" cascade="save-update" ></many-to-one>
</class>
</hibernate-mapping>



User.java

package com;

public class User {


private int id;
private int age;
private String sex;
private String phone;
private String address;

private Room room;



public Room getRoom() {
return room;
}
public void setRoom(Room room) {
this.room = room;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}


...全文
63 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaizhongzheng 2009-11-26
  • 打赏
  • 举报
回复
你在room类中没有建立与User类的关联!
zuomingyu5 2009-09-19
  • 打赏
  • 举报
回复
Room room=new Room();
room.setRoomName("听雨轩");


User user1=new User();
user1.setAddress("第1个地址");
user1.setRoom(room);

User user2=new User();
user2.setAddress("第2个地址");
user2.setRoom(room);

session.save(user1);
session.save(user2);

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧