0

premise: I have started to watching course on the Udemy. I think problem is, this course published couple years ago and spring frame work has been changed a lot since when he published this course.

the problem is I can't reach SetPackagesToScan() method, it is missing by IDE

I am newbie about springframework I don't want to be discouraged at this point because I am striving to solve this problem for 2 days I haven't solved this issue so far.

package com.alper.sarac;

import java.beans.PropertyVetoException;
import java.util.Properties;

import org.springframework.orm.hibernate3.LocalSessionFactoryBean;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Connection {
    
    public ComboPooledDataSource connection() throws PropertyVetoException{
        
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        cpds.setDriverClass("com.mysql.jbdc.Driver");
        cpds.setJdbcUrl("jbdc:mysql://localhost/javaee");
        cpds.setUser("root");
        cpds.setPassword("");
        return  cpds;
    
    }
    
    public void sessionFactory() throws PropertyVetoException{
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(connection());
        Properties properties = new Properties();
        properties.setProperty("hibarnate.dialect","org.hibernate.dialect.MySQLDialect");
        properties.setProperty("hibernate.hbm2dl.auto","update");
        properties.setProperty("hibernate.show_sql","true");
        properties.setProperty("hibernate.format_sql","true");
        
        
        sessionFactory.setHibernateProperties(properties);
        sessionFactory.SetPackagesToScan();
    }

}

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 https://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.alper</groupId>
    <artifactId>sarac</artifactId>
    <name>Sarac</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
        <java-version>1.8</java-version>
        <org.springframework-version>4.2.2.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>

        <!-- ############### Hibernate ############### -->
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.5.Final</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>5.2.5.Final</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.3.8.RELEASE</version>
        </dependency>
        <!-- ############### Hibernate ############### -->

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->

        
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>

        <!-- JSON için. https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.8</version>
        </dependency>


        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>


    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

enter image description here

sarac
  • 67
  • 8
  • Which version of Spring are you using? Looking at the doc, the method exists : https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html#setPackagesToScan-java.lang.String...- – akuma8 Sep 24 '20 at 09:29
  • 4.2.2.RELEASE @akuma8 – sarac Sep 24 '20 at 09:29
  • I added Pom.xml file on my thread @akuma8 – sarac Sep 24 '20 at 09:32
  • Why are you using that version? Is there any constraint for upgrading? – akuma8 Sep 24 '20 at 09:35
  • no there is a no constraint which version should I use? @akuma8 – sarac Sep 24 '20 at 09:36
  • Upgrade all your dependencies to their latest version, see this post for how to check dependencies version: https://stackoverflow.com/questions/2687220/maven-check-for-updated-dependencies-in-repository – akuma8 Sep 24 '20 at 09:41
  • I don't know, How can I do that? I am beginner of spring framework. should I update pom.xml file or something else? @akuma8 – sarac Sep 24 '20 at 10:14

1 Answers1

1

org.springframework.orm.hibernate3.LocalSessionFactoryBean does not have the needed method, see https://docs.spring.io/spring-framework/docs/3.2.x/javadoc-api/org/springframework/orm/hibernate3/LocalSessionFactoryBean.html

You can use org.springframework.orm.hibernate5, see https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html

Old answer: You made two typos. Change

sessionFactory.SetPackagesToScan()

to

sessionFactory.setPackagesToScan();
Andreas
  • 344
  • 4
  • 14
  • You provided a code snipped that can not work. I assume you copied your code which misses a ; (I see you changed that in your question) and uses a wrong method name (which is still wrong in your provided code). As others commented, the method setPackagesToScan exists, the method SetPackagesToScan does not. – Andreas Sep 24 '20 at 09:53
  • But I still can't reach setPackagesToScan() method – sarac Sep 24 '20 at 10:16
  • Try change import org.springframework.orm.hibernate3.LocalSessionFactoryBean; toimport org.springframework.orm.hibernate5.LocalSessionFactoryBean; I can't find the method in hibernate3 documentation but only in hibernate 5 – Andreas Sep 24 '20 at 10:56
  • You are GREAT!!! thank you so much!! update your answer – sarac Sep 24 '20 at 11:16