При построении 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();