• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Hibernate - Błąd związany z time-zone

Object Storage Arubacloud
0 głosów
833 wizyt
pytanie zadane 6 grudnia 2018 w Java przez Moras Obywatel (1,620 p.)

Próbowałem skonfigurować Hibernate-a w javie, ale gdy próbuje włączyć program to wywala jakiś błąd związany z time zone. Proszę o pomoc.

Logi:

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.5\lib\idea_rt.jar=57255:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_191\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\out\production\javaHibernate3;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.jms.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.persistence.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.annotation.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.ejb.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.transaction.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.servlet.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.servlet.jsp.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.resource.jar;C:\Users\Krystian\IdeaProjects\javaHibernate3\lib\javax.servlet.jsp.jstl.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\antlr-2.7.7.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\byte-buddy-1.8.17.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\classmate-1.3.4.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\dom4j-2.1.1.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\hibernate-commons-annotations-5.0.4.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\hibernate-core-5.3.7.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\jandex-2.0.5.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\javassist-3.23.1-GA.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\javax.activation-api-1.2.0.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\javax.persistence-api-2.2.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\jboss-logging-3.3.2.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.13.jar" main
gru 06, 2018 10:24:58 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.7.Final}
gru 06, 2018 10:24:58 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
gru 06, 2018 10:24:59 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/mojabaza]
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator initiateService
WARN: HHH000342: Could not obtain connection to query metadata : null
gru 06, 2018 10:24:59 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl makeLobCreatorBuilder
INFO: HHH000422: Disabling contextual LOB creation as connection was null
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 01S00
gru 06, 2018 10:24:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: The server time zone value 'Œrodkowoeuropejski czas stand' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
	at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179)
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84)
	at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474)
	at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:689)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
	at main.main(main.java:15)
Caused by: org.hibernate.exception.GenericJDBCException: Error calling Driver#connect
	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
	at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:118)
	at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41)
	at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)
	at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363)
	at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282)
	at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260)
	at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401)
	at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112)
	at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75)
	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:100)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
	... 14 more
Caused by: java.sql.SQLException: The server time zone value 'Œrodkowoeuropejski czas stand' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
	at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38)
	... 29 more
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Œrodkowoeuropejski czas stand' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
	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.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
	at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
	at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2234)
	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2258)
	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1319)
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:966)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
	... 33 more

Process finished with exit code 1

 

1 odpowiedź

0 głosów
odpowiedź 6 grudnia 2018 przez mbabane Szeryf (79,280 p.)
wybrane 6 grudnia 2018 przez Moras
 
Najlepsza

Trzeba do ścieżki połączania dodać np.

&serverTimezone=UTC

W sumie nie czytałem co to dokładnie oznacza bo było mi to tylko potrzebne żeby zadziałało więc jak coś to szczegółów musisz szukać sam.

komentarz 6 grudnia 2018 przez Moras Obywatel (1,620 p.)

Tylko, że nie mogę postawić tego znaku '&', bo w takiej formie jest napisany ten plik:

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>

        <property name = "hibernate.dialect">
            org.hibernate.dialect.MySQLDialect
        </property>

        <property name = "hibernate.connection.driver_class">
            com.mysql.jdbc.Driver
        </property>

        <!-- Assume test is the database name -->

        <property name = "hibernate.connection.url">
            jdbc:mysql://localhost/mojabaza
        </property>

        <property name = "hibernate.connection.username">
            root
        </property>

        <property name = "hibernate.connection.password">
            haslo123
        </property>

        <property name="hbm2ddl.auto">create</property>


    </session-factory>
</hibernate-configuration>

 

komentarz 6 grudnia 2018 przez mbabane Szeryf (79,280 p.)

Spróbuj tak

?serverTimezone=UTC

Ponieważ jest to pierwszy parametr typu query a jak by było ich więcej to zamiast & trzeba użyć:

&amp;Zmienna=Wartosc

Zobacz tutaj:

https://github.com/slgobinath/Java-Helps-Java/blob/master/jpa/helloworld/hibernate/JPAWithHibernate5/src/main/resources/META-INF/persistence.xml

komentarz 6 grudnia 2018 przez Moras Obywatel (1,620 p.)

Tym razem coś innego mu nie pasuje

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.5\lib\idea_rt.jar=57800:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_191\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar;C:\Users\Krystian\IdeaProjects\javaHibernate\out\production\javaHibernate;C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.13.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\antlr-2.7.7.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\byte-buddy-1.8.17.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\classmate-1.3.4.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\dom4j-2.1.1.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\hibernate-commons-annotations-5.0.4.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\hibernate-core-5.3.7.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\jandex-2.0.5.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\javassist-3.23.1-GA.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\javax.activation-api-1.2.0.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\javax.persistence-api-2.2.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\jboss-logging-3.3.2.Final.jar;C:\Users\Krystian\Desktop\hibernate-release-5.3.7.Final\lib\required\jboss-transaction-api_1.2_spec-1.1.1.Final.jar" main
gru 06, 2018 6:31:49 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.7.Final}
gru 06, 2018 6:31:49 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
gru 06, 2018 6:31:49 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
gru 06, 2018 6:31:50 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
gru 06, 2018 6:31:50 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/mojabaza?serverTimezone=UTC]
gru 06, 2018 6:31:50 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
gru 06, 2018 6:31:50 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
gru 06, 2018 6:31:50 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
gru 06, 2018 6:31:50 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
gru 06, 2018 6:31:50 PM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources
INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@6c25e6c4'
Exception in thread "main" org.hibernate.MappingException: Unknown entity: Student
	at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:670)
	at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1692)
	at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:122)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
	at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
	at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
	at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:709)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:701)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:696)
	at main.main(main.java:19)

Process finished with exit code -1

Tutaj mam klase Student:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Student {

    @Id
    @GeneratedValue
    private int studentId;

    @Column(name="imie_studenta")
    private String imie;

    @Column(name = "naziwsko_studenta")
    private String nazwisko;

    @Column(name = "nr_indeksu")
    private long nr_indeksu;

    public Student(String imie, String nazwisko, long nr_indeksu) {
        this.imie = imie;
        this.nazwisko = nazwisko;
        this.nr_indeksu = nr_indeksu;
    }

    public int getStudentId() {
        return studentId;
    }

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public String getImie() {
        return imie;
    }

    public void setImie(String imie) {
        this.imie = imie;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public void setNazwisko(String nazwisko) {
        this.nazwisko = nazwisko;
    }

    public long getNr_indeksu() {
        return nr_indeksu;
    }

    public void setNr_indeksu(long nr_indeksu) {
        this.nr_indeksu = nr_indeksu;
    }
}

 

komentarz 6 grudnia 2018 przez mbabane Szeryf (79,280 p.)

Trzeba zarejestować klasy przed użyciem:

configuration.addAnnotatedClass(Student.class)

Pokaż jeszcze więcej kodu, bo nie wiem na czym stoisz.

komentarz 6 grudnia 2018 przez Moras Obywatel (1,620 p.)

Mam tu jeszcze klase main

 

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class main {

    public static void main(String[] args){
        Student student = new Student("Damian","Szelest",4234234);

        
        SessionFactory factory = new Configuration().
                configure("hibernate.cfg.xml").buildSessionFactory();
        Session session = factory.openSession();

        Transaction transaction = session.beginTransaction();
        session.save(student);
        transaction.commit();

        session.close();
        factory.close();
        
    }
}

 

komentarz 6 grudnia 2018 przez mbabane Szeryf (79,280 p.)
Tak, musisz wywołać to co wyżej wstawiłem.
komentarz 6 grudnia 2018 przez Moras Obywatel (1,620 p.)

Zrobiłem tak:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class main {

    public static void main(String[] args){


        Student student = new Student("Damian","Szelest",4234234);


        Configuration configuration =
                new Configuration().configure("hibernate.cfg.xml");

        configuration.addAnnotatedClass(Student.class);

        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
                applySettings(configuration.getProperties()).build();

        SessionFactory factory = configuration.buildSessionFactory(serviceRegistry);
        Session session = factory.openSession();

        Transaction transaction = session.beginTransaction();
        session.save(student);
        transaction.commit();

        session.close();
        factory.close();

    }
}

i dalej nie działa

komentarz 6 grudnia 2018 przez mbabane Szeryf (79,280 p.)
Co znaczy nie działa?
komentarz 6 grudnia 2018 przez Moras Obywatel (1,620 p.)

Jest wreszcie się udało. Musiałem zmienić dialect na

org.hibernate.dialect.MySQL5Dialect

i dodać takie property:

<property name="current_session_context_class">thread</property>

 

Podobne pytania

0 głosów
1 odpowiedź 187 wizyt
pytanie zadane 23 grudnia 2019 w Java przez Uwegi Początkujący (430 p.)
0 głosów
1 odpowiedź 209 wizyt
+1 głos
1 odpowiedź 311 wizyt

92,571 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...