Answer the question
In order to leave comments, you need to log in
How to generate primary key in jpa?
Hello. Help, please, to solve a problem. It would be desirable that the value of the primary key, when adding a new object, was generated by itself.
For this I do:
@Entity
public class Tariff {
@Id
@Column(name = "id")
@GeneratedValue
private int id;
@Basic
@Column(name = "title")
private String title;
public Tariff() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Tariff(String title) {
// this.id = id;
this.title = title;
}
}
public class TariffDAO {
private EntityManagerFactory emf = Persistence.createEntityManagerFactory("operator");
private EntityManager em = emf.createEntityManager();
public static void main(String[] args) {
TariffDAO tariffDAO = new TariffDAO();
tariffDAO.addTariff("Base");
}
public void addTariff(String title) {
Tariff tariff = new Tariff(title);
try {
em.getTransaction().begin();
em.persist(tariff);
em.getTransaction().commit();
System.out.println("Tariff added");
} catch (PersistenceException e) {
e.printStackTrace();
System.out.println("Fail");
} finally {
em.close();
emf.close();
}
}
}
ERROR: could not read a hi value
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'operator.hibernate_sequence' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:942)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
...
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question