public static SessionFactory sessionFactory () {
try {
Configuration configuration = new Configuration();
Properties prop= new Properties();
prop.put(Environment.URL, URL);
prop.put(Environment.USER, USER);
prop.put(Environment.PASS, PASSWORD);
prop.put(Environment.SHOW_SQL, false);
prop.put(Environment.DIALECT, "org.hibernate.dialect.MySQLDialect");
configuration.addProperties(prop);
configuration.addAnnotatedClass(User.class);
configuration.configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.build();
return configuration.buildSessionFactory(serviceRegistry);
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
И вот место где я его использую
public void saveUser(String name, String lastName, byte age) {
Session session = sessionFactory.openSession();
User user = new User(name, lastName, age);
session.beginTransaction();
session.save(user); // todo Заменить на метод не deprecated
session.getTransaction().commit();
session.close();
}
Странно, что .addAnnotatedClass не отрабатывает должным образом, а вот кстати и сам класс User
@Entity
@Table
public class User {
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private Long id;
@Column (name = "userName")
private String name;
@Column
private String lastName;
@Column
private Byte age;
public User() {
}
public User(String name, String lastName, Byte age) {
this.name = name;
this.lastName = lastName;
this.age = age;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Byte getAge() {
return age;
}
public void setAge(Byte age) {
this.age = age;
}
@Override
public String toString() {
return "User {" +
"id=" + id +
", name='" + name + '\'' +
", lastName='" + lastName + '\'' +
", age=" + age +
'}';
}
}