-1

I keep getting this message:

29-Jul-2021 12:54:23.839 WARN [RMI TCP Connection(3)-127.0.0.1] org.hibernate.boot.internal.SessionFactoryOptionsBuilder. class org.hibernate.tool.schema.Action cannot be cast to class java.lang.String (org.hibernate.tool.schema.Action is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @1a92892d; java.lang.String is in module java.base of loader 'bootstrap') Ignoring

Why does it appear? How can I fix this?

Below is my entire project.

AppInit.class

    public final class AppInit extends AbstractAnnotationConfigDispatcherServletInitializer {


        @Override
        protected final Class<?>[] getRootConfigClasses() {
            return new Class<?>[]{ RootConfig.class };
        }

        @Override
        protected final Class<?>[] getServletConfigClasses() {
            return new Class<?>[] { Config.class };
        }

        @Override
        protected final String [] getServletMappings() {
            return new String[]{"/"};
        }

    }

Config.class

    @EnableWebMvc
    @Configuration
    @ComponentScan("com.hiber.controller")
    public class Config implements WebMvcConfigurer {
    }

RootConfig.class

    @EnableWebMvc
    @Configuration
    public class RootConfig implements WebMvcConfigurer{


        @Bean
        public DataSource dataSource(){
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/hiber?serverTimezone=UTC&useSSL=false");
            dataSource.setUsername("root");
            dataSource.setPassword("1111");
            return dataSource;
        }


        @Bean
        public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

            JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();

            LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
            factory.setJpaVendorAdapter(vendorAdapter);
            factory.setPackagesToScan("com.hiber.model");
            factory.setDataSource(dataSource());
            factory.setJpaProperties(additionalProperties());

            return factory;
        }

        @Bean
        Properties additionalProperties() {

            Properties properties = new Properties();

            properties.put(Environment.SHOW_SQL, "true");
            properties.put(Environment.FORMAT_SQL, "true");
            properties.put(Environment.DEFAULT_SCHEMA, "hiber");
            properties.put(Environment.HBM2DDL_AUTO, Action.UPDATE);
            properties.put(Environment.DIALECT, "org.hibernate.dialect.MySQL8Dialect");
            properties.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");

            return properties;
        }

        @Bean
        public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {

            JpaTransactionManager txManager = new JpaTransactionManager();
            txManager.setEntityManagerFactory(entityManagerFactory);
            return txManager;
        }


    }

Home.class

    @Controller
    public class Home {

        @ResponseBody
        @GetMapping(value = "/")
        public String home () {
            return "home";
        }

    }

User.class

    @Entity(name = "User")
    @Table(name = "user", schema = "hiber")
    public class User implements Serializable {


        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id", nullable = false, unique = true)
        private Long id;


        @NaturalId
        @Column(name = "email")
        private String email;

        public Long getId() {
            return id;
        }

        public void setId(Long id) {
            this.id = id;
        }

        public String getEmail() {
            return email;
        }

        public void setEmail(String email) {
            this.email = email;
        }
    }

POM.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>

        <groupId>com.hiber</groupId>
        <artifactId>Hiber</artifactId>
        <version>1.0-SNAPSHOT</version>

        <build>
            <plugins>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${encoding}</encoding>
                    </configuration>
                </plugin>

            </plugins>
        </build>

        <properties>
            <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <failOnMissingWebXml>false</failOnMissingWebXml>
            <java.version>11</java.version>
            <encoding>UTF-8</encoding>
        </properties>


        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-framework-bom</artifactId>
                    <version>5.3.9</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>org.junit</groupId>
                    <artifactId>junit-bom</artifactId>
                    <version>5.7.1</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>

        <dependencies>

            <!--        Spring Framework-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
            </dependency>




            <!--        Servlet-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.1</version>
            </dependency>



            <!--        Mysql connector java-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.25</version>
            </dependency>

            <!--        Spring data jpa-->
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-jpa</artifactId>
                <version>2.5.3</version>
            </dependency>



            <!--        Hibernate entity manager-->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>5.5.4.Final</version>
            </dependency>




            <!--        Testing-->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>3.20.2</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>3.11.2</version>
                <scope>test</scope>
            </dependency>


            <!--        Logging-->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.32</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>1.7.32</version>
            </dependency>
        </dependencies>

    </project>

Tell me, what am I doing wrong?

Olaf Kock
  • 46,930
  • 8
  • 59
  • 90

2 Answers2

-1

Maybe it comes from duplicating dependency. Please provide your pom.xml

Mark
  • 15
  • 3
-1

I changed properties.put(Environment.HBM2DDL_AUTO, Action.UPDATE);

I changed properties.put(Environment.HBM2DDL_AUTO, Action.UPDATE); to properties.put(Environment.HBM2DDL_AUTO, "update");