I am trying to store my Point class in oracle database. When a user is clicking on a button in a index.xhtml(JSF) method savePoint is being called
import javax.persistence.*;
import java.sql.DriverManager;
import java.sql.SQLException;
@Entity
@Table(name = "WEB_LAB3", schema = "S265077")
public class Point {
@Column(name = "X")
private float x;
@Column(name = "Y")
private float y;
@Column(name = "R")
private float r;
@Column(name = "CORRECT")
private int correct; // 0 - некорректно, 1 - корректно
@Column(name = "in")
private int in; // 0 - некорректно, 1 - корректно
@Id @GeneratedValue
@Column(name = "ID")
private int id;
public Point() {
this.x = 0;
this.y = 0;
this.r = 1;
this.correct = 0;
this.in = 0;
}
public float getX() {
return x;
}
public void setX(float x) {
this.x = x;
}
public float getY() {
return y;
}
public void setY(float y) {
this.y = y;
}
public float getR() {
return r;
}
public void setR(float r) {
this.r = r;
}
public int getCorrect() {
return correct;
}
public void setCorrect(int correct) {
this.correct = correct;
}
public int getIn() {
return in;
}
public void setIn(int in) {
this.in = in;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void savePoint() {
try {
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
} catch (SQLException e) {
e.printStackTrace();
}
EntityManagerFactory factory = Persistence.createEntityManagerFactory("ITMO");
EntityManager entityManager = factory.createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist(this); // <-- mistake here
entityManager.getTransaction().commit();
entityManager.close();
factory.close();
}
}
And I get java.lang.IllegalArgumentException: Unknown entity: Model.Point
In my pom.xml I have dependencies
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.7.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.7.Final</version>
</dependency>
And my persistence.xml is
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="ITMO" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:XE" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="password" />
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="none" />
</properties>
</persistence-unit>
So I need to understand if there is a mistake in my code and try to fix it.