title: How to save multiple objects via ArrayList in hibernate?
body: <p>I have a Student entity. My idea is to collect multiple student objects in an ArrayList and save all objects from that list to the database. When do you use @ElementCollection annotation? Does it apply to situations like this?</p>
  
  <p><strong>Student</strong>:</p>
  
  <pre><code>package basic;
  
  import javax.persistence.Entity;
  import javax.persistence.GeneratedValue;
  import javax.persistence.GenerationType;
  import javax.persistence.Id;
  
  @Entity
  public class Student {
  
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private int id;
      private String name;
  
      public Student() {
  
      }
  
      public int getId() {
          return id;
      }
  
      public void setId(int id) {
          this.id = id;
      }
  
      public String getName() {
          return name;
      }
  
      public void setName(String name) {
          this.name = name;
      }
  
      @Override
      public String toString() {
          return "Student [id=" + id + ", name=" + name + "]";
      }
  
      public Student(String name) {
          this.name = name;
      }
  
  }
  </code></pre>
  
  <p><strong>Runner</strong>:</p>
  
  <pre><code>package basic;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import org.hibernate.Session;
  import org.hibernate.SessionFactory;
  import org.hibernate.cfg.Configuration;
  
  public class Runner {
  
      public static void main(String[] args) {
  
          SessionFactory sessionFactory = new Configuration().configure("/basic/hibernate.cfg.xml").buildSessionFactory();
          Session session = sessionFactory.openSession();
          session.beginTransaction();
  
          List&lt;Student&gt; students = new ArrayList&lt;&gt;();
  
          students.add(new Student("Michael"));
          students.add(new Student("Dave"));
          students.add(new Student("Tom"));
          students.add(new Student("Dinesh"));
          students.add(new Student("Lakshman"));
          students.add(new Student("Cruise"));
  
          session.save(students);
  
          session.getTransaction().commit();
          session.close();
      }
  
  }
  </code></pre>
  
  <p><strong>Error</strong></p>
  
  <pre><code>Exception in thread "main" org.hibernate.MappingException: Unknown entity: java.util.ArrayList
      at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:620)
      at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1596)
      at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
      at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
      at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
      at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
      at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
      at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
      at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:668)
      at org.hibernate.internal.SessionImpl.save(SessionImpl.java:660)
      at org.hibernate.internal.SessionImpl.save(SessionImpl.java:655)
      at basic.Runner.main(Runner.java:27)
  </code></pre>