title: message -"could not read a hi value - you need to populate the table: hibernate_sequence"
body: <p>My problem is as follows: When i create POST request in "Postman" app. This is what i try to POST </p>
  
  <pre><code>  {"name": "John Doe", "email":"jdoe@test.com", "city": "London"}
  </code></pre>
  
  <p>I am getting the following error:</p>
  
  <pre><code>{
  "timestamp": "2018-11-19T20:16:00.486+0000",
  "status": 500,
  "error": "Internal Server Error",
  "message": "could not read a hi value - you need to populate the table: hibernate_sequence; nested exception is org.hibernate.id.IdentifierGenerationException: could not read a hi value - you need to populate the table: hibernate_sequence",
  "path": "/api/ver01/product"
  }
  </code></pre>
  
  <p>I was looking for answer in search box but none of them helped me. So i think that the problem is in sql code but I am not sure. Whole project is written in intelliJ IDE.</p>
  
  <p>This is my Product class.</p>
  
  <pre><code>package com.hubertkulas.webstore.store.archetype;
  
  import com.fasterxml.jackson.annotation.JsonFormat;
  import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  
  import javax.persistence.Entity;
  import javax.persistence.GeneratedValue;
  import javax.persistence.GenerationType;
  import javax.persistence.Id;
  import java.math.BigDecimal;
  import java.sql.Date;
  
  @Entity
  @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
  public class Product {
  
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  
  private boolean contact;
  private String email;
  private String category;
  private String name;
  private String city;
  
  private String model;
  private BigDecimal price;
  
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM-dd-yyyy")
  private Date date;
  
  
  
  public String getName() {
      return name;
  }
  
  public void setName(String name) {
      this.name = name;
  }
  
  public String getEmail() {
      return email;
  }
  
  public void setEmail(String email) {
      this.email = email;
  }
  
  public String getCity() {
      return city;
  }
  
  public void setCity(String city) {
      this.city = city;
  }
  
  public String getCategory() {
      return category;
  }
  
  public void setCategory(String category) {
      this.category = category;
  }
  
  public String getModel() {
      return model;
  }
  
  public void setModel(String model) {
      this.model = model;
  }
  
  public BigDecimal getPrice() {
      return price;
  }
  
  public void setPrice(BigDecimal price) {
      this.price = price;
  }
  
  public Date getDate() {
      return date;
  }
  
  public void setDate(Date date) {
      this.date = date;
  }
  
  public boolean isContact() {
      return contact;
  }
  
  public void setContact(boolean contact) {
      this.contact = contact;
  }
  
  public Long getId() {
      return id;
  }
  
  // setter for id because Jackson will use it
  public void setId(Long id) {
      this.id = id;
  }
  }
  </code></pre>
  
  <p>This is my ProductController class</p>
  
  <pre><code>package com.hubertkulas.webstore.store.controllers;
  import com.hubertkulas.webstore.store.archetype.Product;
  import com.hubertkulas.webstore.store.jparepository.ProductRepository;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.http.HttpStatus;
  import org.springframework.web.bind.annotation.*;
  
  import java.util.List;
  
  @RestController
  @RequestMapping("api/ver01/product")
  public class ProductController {
  
  //injecting ProductRepository when ProductController is called
  @Autowired
  private ProductRepository productRepository;
  
  @GetMapping
  public List&lt;Product&gt; list() {
      //finds all of the records and returns it
     return productRepository.findAll();
  }
  
  @PostMapping
  @ResponseStatus(HttpStatus.OK)
  public void create(@RequestBody Product product){
      productRepository.save(product);
  }
  
  
  
  @GetMapping("/{id}")
  public Product get(@PathVariable("id") long id){
      // return specific record with added id
      return productRepository.getOne(id);
  }
  
  }
  </code></pre>
  
  <p>This is my ProductRepository Interface</p>
  
  <pre><code>package com.hubertkulas.webstore.store.jparepository;
  
  import com.hubertkulas.webstore.store.archetype.Product;
  import org.springframework.data.jpa.repository.JpaRepository;
  
  //Using Jpa for CRUD operations
  public interface ProductRepository extends JpaRepository&lt;Product, Long&gt; {
  }
  </code></pre>
  
  <p>And this is my database</p>
  
  <pre><code>CREATE TABLE
  product
  (
      id BIGINT NOT NULL,
      contact BOOLEAN NOT NULL,
      email VARCHAR,
      category VARCHAR,
      name VARCHAR,
      city VARCHAR,
      date DATETIME,
      price NUMERIC,
      model VARCHAR,
      PRIMARY KEY (id)
  );
  
  CREATE TABLE
  hibernate_sequence
  (
      next_val BIGINT
  );
  
  INSERT INTO product (id, contact, email, category, name, city, date, price)
  VALUES (1, 1, 'abraham@site.com', 'Electronics', 'Abraham Westbrom', 'New 
  York', 4419619200000, '3250');
  INSERT INTO product (id, contact, email, category, name, city, date, price)
  VALUES (2, 1, 'udon@site.com', 'Electronics', 'Udon Hon', 'London', 
  4419619200000, '799');
  INSERT INTO product (id, contact, email, category, name, city, date, price)
  VALUES (3, 0, 'mateuszsinus@site.com', 'Software', 'Mateusz Sinus', 
  'Warsaw', 4419619200000, '10000');
  
  INSERT INTO hibernate_sequence (next_val) VALUES (4);
  </code></pre>