title: Hibernate mapping exception: Could not determine type for columns: [org.hibernate.mapping.Column]
body: <p>I'm want to do a one-to-many mapping between two tables BookStock and Book, but I'm getting the following exception</p>
  
  <pre><code>Exception in thread "main" org.hibernate.MappingException: Could not determine type for: java.util.List, at table: book_stock, for columns: [org.hibernate.mapping.Column(books)]
  </code></pre>
  
  <p>The bookStock entity is</p>
  
  <pre><code>@Entity
  @Table(name = "book_stock")
  public class BookStock {
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private Long id;
  
      private Long stock;
      private List&lt;Book&gt; books;
  
      @Column(name = "id")
      public Long getId() {
          return id;
      }
  
      public void setId(Long id) {
          this.id = id;
      }
  
      @Column(name = "stock")
      public Long getStock() {
          return stock;
      }
  
      public void setStock(Long stock) {
          this.stock = stock;
      }
  
      @OneToMany
      @PrimaryKeyJoinColumn
      public List&lt;Book&gt; getBooks() {
          return books;
      }
  
      public void setBooks(List&lt;Book&gt; books) {
          this.books = books;
      }
  }
  </code></pre>
  
  <p>The Book Entity is</p>
  
  <pre><code>@Entity
  @Table(name = "book")
  public class Book {
  
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private Long id;
      private String bookName;
      private BigDecimal price;
      private BookStock bookStock;
  
      @Column(name = "id")
      public Long getId() {
          return id;
      }
  
      public void setId(Long id) {
          this.id = id;
      }
  
      @Column(name = "book_name")
      public String getBookName() {
          return bookName;
      }
  
      public void setBookName(String bookName) {
          this.bookName = bookName;
      }
  
      @Column(name = "price")
      public BigDecimal getPrice() {
          return price;
      }
  
      public void setPrice(BigDecimal price) {
          this.price = price;
      }
  
      @ManyToOne
      public BookStock getBookStock() {
          return bookStock;
      }
  
      public void setBookStock(BookStock bookStock) {
          this.bookStock = bookStock;
      }
  }
  </code></pre>
  
  <p>The Example class is</p>
  
  <pre><code>public class transactionsExample {
  
      public static void main(String[] args) {
          AnnotationConfiguration configuration = new AnnotationConfiguration();
          configuration.configure();
          configuration.addAnnotatedClass(Book.class);
          configuration.addAnnotatedClass(BookStock.class);
          configuration.setNamingStrategy(ImprovedNamingStrategy.INSTANCE);
          SessionFactory sessionFactory = configuration.buildSessionFactory();
          Session session = sessionFactory.openSession();
  
          session.beginTransaction();
          Book book1 = EntityBuilder.book().withISBN("21234").withName("Anario").withPrice(25.90).purchase();
         session.save(book1);
          session.getTransaction().commit();
      }
  }
  </code></pre>
  
  <p>What's going wrong in this relation? </p>