Неоднозначный вызов метода для AnnotationConfiguration - PullRequest
0 голосов
/ 13 февраля 2019

При построении sessionFactory IntelliJ показывает «вызов метода неоднозначен» и ссылается на метод с именем addAnnotationClass (), который присутствует в классе AnnotationConfiguration и Configuration

package com.dendrowen.controllers;

import com.dendrowen.models.User;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * Created by dendrowen on 2/11/17.
 */

@Controller
public class IndexController {

    private static SessionFactory factory;

    @GetMapping("/")
    public String index(Model m) {
        try{
            factory = new AnnotationConfiguration()
                    .configure()
                    .addAnnotatedClass(User.class) //The error underlines ' User.class'
                    .buildSessionFactory();
        }
        catch (Throwable ex){
            System.err.println("Failed to create sessionFactory object." + ex);
            throw new ExceptionInInitializerError(ex);
        }

        Session session = factory.openSession();

        Transaction tx = null;
        Integer id = null;

        try{
            tx = session.beginTransaction();
            User user = new User("John", "Doe", 30000);
            id = (Integer) session.save(user);
            tx.commit();
        }
        catch (HibernateException ex){
            if(tx != null) tx.rollback();
            ex.printStackTrace();
        }
        finally {
            session.close();
        }



        m.addAttribute("someAttribute", id);
        return "index";
    }
}

Проблема просто отсутствуетимеет смысл для меня, так как я вызываю метод из класса AnnotationConfiguration.Я попытался сначала определить переменную и вызвать метод из переменной, но это приводит к той же ошибке.Смотрите ниже:

        AnnotationConfiguration conf = new AnnotationConfiguration();
        conf.configure();
        conf.addAnnotatedClass(User.class);
        factory = conf.buildSessionFactory();
...