如何在Spring Entity类中保留ArrayList?

时间:2014-08-20 22:49:36

标签: spring spring-mvc crud

我在Users实体类下面有以下成员变量声明,并为实体创建了UserRepository,并在控制器类中自动装配了UserRepository实例。

一切正常,但是当我在我的实体类中声明一个数组列表时,我的控制器崩溃了。

我的问题是如何在实体类中声明列表并通过控制器中的公共函数访问它。

@Entity
public class Users {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String name;

    private  ArrayList <String> courses = new ArrayList<String>();

   //Omitted Class Member Functions
    }

以下是错误跟踪

 - ERROR 3040 --- [           main]
   org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000389: Unsuccessful:
   alter table video_courses drop constraint FK_gb79j8mlvu17uvv38mp0x9ts
 - 2014-08-22 11:10:07.210 ERROR 3040 --- [           main]
   org.hibernate.tool.hbm2ddl.SchemaExport  : user lacks privilege or
   object not found: PUBLIC.VIDEO_COURSES

2 个答案:

答案 0 :(得分:1)

我错过了实体声明中的@ElementCollection@CollectionTable注释。

 @Entity
    public class Users {

            @Id
            @GeneratedValue(strategy = GenerationType.AUTO)
            private long id;

            private String name;

            @ElementCollection
            @CollectionTable(name="listOfUsers")
            private  ArrayList <String> courses = new ArrayList<String>();

           //Omitted Class Member Functions
        }

答案 1 :(得分:0)

更改

private  ArrayList <String> courses = new ArrayList<String>();

private List<String> courses = new ArrayList();

看看你怎么走