Hi I am new to Hibernate and I am getting the following exception while trying to save a collection.
Could not determine type for: java.util.List, for columns
**Here are my codes**
@Entity
@Table(name="USER_DETAILS")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@ElementCollection
private List<Address> aList=new ArrayList<Address>();
@Embeddable
public class Address {
@Column(length=50)
private String city;
@Column(length=50)
private String state;
@Column(length=50)
private String country;
@Column(length=10)
private int zip;
}
@Embeddable
public class Address implements Serializable{
private static final long serialVersionUID = 1L;
@Column(length=50)
private String city;
@Column(length=50)
private String state;
@Column(length=50)
private String country;
@Column(length=10)
private int zip;
public String getCity() {
return city;
}
public class TestUser {
public static void main(String[] args) {
User user=new User();
Address addr=new Address();
addr.setCity("Asjasjs");
addr.setCountry("gfgf");
addr.setState("atyty");
addr.setZip(345343);
user.getaList().add(addr);
Session session=SessionFactoryUtil.getSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
session.close();
}
这是将数据存储在数据库中的方式
答案 0 :(得分:0)
您需要在数据库中存储Address
的表格。该表需要包含Address
类中映射的所有列,以及用于将其与表USER_DETAILS
有了这个,aList
字段的映射将如下所示
@ElementCollection
@CollectionTable(name = "ADDRESS", joinColumns = {@JoinColumn(name = "USER_DETAILS_ID")})
private List<Address> aList=new ArrayList<Address>();