1
以下是我的实体类org.hibernate.MappingException处于休眠存储收集
@Entity
@Table(name = "USER_DETAILS")
public class UserDetails {
@Id
private int userId;
@Column (name="USER_NAME")
private String userName;
@Temporal(TemporalType.DATE)
private Date date;
@ElementCollection
private Set<Address> streetAddress = new HashSet<Address>();
public Set<Address> getStreetAddress() {
return streetAddress;
}
public void setStreetAddress(Set<Address> streetAddress) {
this.streetAddress = streetAddress;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
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类
public class Address {
private String city;
private String pin;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getPin() {
return pin;
}
public void setPin(String pin) {
this.pin = pin;
}
}
而且下面是主类
public class HibernateMain {
public static void main(String[] args) {
Address address = new Address();
address.setCity("Pune");
address.setPin("1232");
Address homeAddress = new Address();
homeAddress.setCity("home_Pune");
homeAddress.setPin("home_1232");
UserDetails user = new UserDetails();
user.setUserId(3);
user.setUserName("Second user");
user.setDate(new Date());
user.getStreetAddress().add(address);
user.getStreetAddress().add(homeAddress);
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = cfg.buildSessionFactory(new ServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build());
Session session = sf.openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
session.close();
}
}
的例外是在运行时抛出
Exception in thread "main" org.hibernate.MappingException: Could not determine type for: com.example.model.Address, at table: UserDetails_streetAddress, for columns: [org.hibernate.mapping.Column(streetAddress)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:310)
at org.hibernate.mapping.Collection.validate(Collection.java:315)
at org.hibernate.mapping.Set.validate(Set.java:40)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1362)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849)
at com.example.hibernate.HibernateMain.main(HibernateMain.java:36)
我正在使用休眠4.3和MySQL作为数据库。如果我不使用集合,那么它适用于休息。代码有什么问题。
编辑:
另外一个question.Am我使用权代码来获得SessionFactory的我休眠版本我的IDE显示为depricatedServiceRegistryBuilder类。 感谢您的帮助。
@axtavt感谢您的协助 –
嘿谢谢。请您为编辑的问题提出建议。 –
@PrashantShilimkar请参阅:http://stackoverflow.com/questions/8621906/is-buildsessionfactory-deprecated-in-hibernate-4 –