Я получил ошибку java.lang.ClassCastException
при использовании Hibernate (5.4.12).
Он говорит EntityReferenceEvent cannot be cast to class javax.xml
.
Ошибка:
Mar 09, 2020 2:50:26 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate ORM core version 5.4.12.Final
Exception in thread "main" java.lang.ClassCastException: class com.sun.xml.internal.stream.events.EntityReferenceEvent cannot be cast to class javax.xml.stream.events.Characters (com.sun.xml.internal.stream.events.EntityReferenceEvent and javax.xml.stream.events.Characters are in module java.xml of loader 'bootstrap')
at java.xml/com.sun.xml.internal.stream.events.DummyEvent.asCharacters(DummyEvent.java:115)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXEventConnector.handleCharacters(StAXEventConnector.java:210)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXEventConnector.bridge(StAXEventConnector.java:141)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:460)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:435)
at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:126)
at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65)
at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:57)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:215)
at org.hibernate.cfg.Configuration.configure(Configuration.java:258)
at org.hibernate.cfg.Configuration.configure(Configuration.java:244)
at com.fortune.Hibernate.App.main(App.java:26)
Мой класс приложения Hibernate.
public class App
{
public static void main( String[] args )
{
Model model=new Model();
model.setId(102);
model.setName("Alien");
model.setColor("Green");
Configuration con= new Configuration();
ServiceRegistry sg=new StandardServiceRegistryBuilder().applySettings(con.getProperties()).build();
con.configure().addAnnotatedClass(Model.class);
SessionFactory sf= con.buildSessionFactory(sg);
Session ss= sf.openSession();
Transaction tns=ss.beginTransaction();
ss.save(model);
tns.commit();
ss.close();
sf.close();
}
}
Это файл 'Hibernate.cfg. xml'.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">12345678</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/fortune?verifyServerCertificate=false&useSSL;</property>
<property name="hibernate.connection.username">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hbm2ddl.auto",environment="hibernate.dialect")>update</property>
</session-factory>
</hibernate-configuration>
Моя модель:
@Entity
@Table(name="users")
public class Model {
@Id
private int id;
private String name;
private String color;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}