Я пытаюсь сохранить свой класс Point в базе данных Oracle. Когда пользователь нажимает кнопку в методе index.xhtml (JSF), вызывается savePoint
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();
}
}
И я получаю исключение java.lang.IllegalArgumentException: Неизвестная сущность: Модель.Point
В моем pom.xml у меня есть зависимости
<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>
И мой файл persistence.xml
<?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>
Так что мне нужнопонять, есть ли в моем коде ошибка, и попытаться ее исправить.