保存集合时Hibernate映射异常

时间:2015-01-19 15:58:19

标签: java hibernate

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();

        }

这是将数据存储在数据库中的方式 enter image description here

1 个答案:

答案 0 :(得分:0)

您需要在数据库中存储Address的表格。该表需要包含Address类中映射的所有列,以及用于将其与表USER_DETAILS

相关联的一列

有了这个,aList字段的映射将如下所示

@ElementCollection
@CollectionTable(name = "ADDRESS", joinColumns = {@JoinColumn(name = "USER_DETAILS_ID")})
private List<Address> aList=new ArrayList<Address>();