Java hibernate中未使用@Embeddeble vlue类型对象更新数据库值
您好,我是hibernate新手,请尝试简单的示例代码 这里我使用Hibernate并将用户对象保存到数据库中 模型实体:-将Address类对象作为成员变量的userinfo UserInfo.javaJava hibernate中未使用@Embeddeble vlue类型对象更新数据库值,java,hibernate,Java,Hibernate,您好,我是hibernate新手,请尝试简单的示例代码 这里我使用Hibernate并将用户对象保存到数据库中 模型实体:-将Address类对象作为成员变量的userinfo UserInfo.java package org.hibernate.dto; import javax.persistence.*; @Entity @Table(name="User_Info") public class UserInfo { @Id @GeneratedValue(strate
package org.hibernate.dto;
import javax.persistence.*;
@Entity
@Table(name="User_Info")
public class UserInfo
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int userid;
@Column(name="UserName")
private String username;
@Embedded
private Address ad;
public Address getAd() {
return ad;
}
public void setAd(Address ad) {
this.ad = ad;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
Address.java
package org.hibernate.dto;
import javax.persistence.Embeddable;
@Embeddable
public class Address
{
private String city;
private String state;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
HibernateTest.java
package org.hibernate.Test;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.dto.*;
import HibernateUtils.*;
public class HibernateTest {
public static void main(String[] args)
{
UserInfo user=new UserInfo();
user.setUsername("Yogendra");
Address a1=new Address();
a1.setCity("pune");
Session session = HibernateUtils.getFactory().openSession();
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
}
}
主要问题是他们的唯一用户名和用户ID在数据库中被更新,没有地址字段的条目
如果我犯了一些错误,请指出。您没有在任何地方将地址设置为用户。添加user.setAda1,它就会工作。为什么要这样做。用户对象上没有设置地址,因此hibernate对此一无所知。您只构建了一个地址,不做任何处理。Thankx@Predrag Maric: