SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
psqlRow newUser = new psqlRow();
newUser.setId((long)102); //Ид пользователей из другой команды начинается с 100, и таблица имеет секции соразмерные 100
newUser.setNickname("svema0705");
newUser.setEmail("svema0705@mail.mail");
newUser.setFirstname("Ilya");
logger.info(" " + newUser.getId() + " " + newUser.getNickname() + " " + newUser.getFirstname() + " " + newUser.getEmail());
session.save(newUser);
session.flush();
transaction.commit();
session.close();
sessionFactory.close();
03:21:15 [INFO ] >> 102 svema0705 Ilya svema0705@mail.mail
Hibernate:
insert
into
acman.accounts
(email, nickname, firstname)
values
(?, ?, ?)
03:21:15 [WARN ] >> SQL Error: 0, SQLState: 23514
03:21:15 [ERROR] >> ОШИБКА: для строки не найдена секция в отношении "accounts"
Подробности: Ключ секционирования для неподходящей строки содержит (id) = (null).
import lombok.*;
import javax.persistence.*;
import java.sql.Timestamp;
@Entity
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Table(name="accounts", schema = "acman")
public class psqlRow
{
@Getter
@Setter
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long uid = null;
@Getter
@Setter
@Basic
@Column(name = "email")
public String email = null;
@Getter
@Setter
@Basic
@Column(name = "nickname")
public String nickname = null;
@Getter
@Setter
@Basic
@Column(name = "firstname")
public String firstname = null;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection properties -->
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://192.168.7.231:36000/accounts</property>
<!-- Other Hibernate properties -->
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="format_sql">true</property>
<!-- first time it is create and the onwards update -->
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.ejb.naming_strategy"></property>
<!-- Mapping files or annotated classes -->
<!-- Add your entry classes or mapping files here for ex: entity used below -->
<mapping class="Sv.Psql.PostgresManager"/>
</session-factory>
</hibernate-configuration>
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long uid = null;
insert into acman.accounts
(email, nickname, firstname) -- нет id
values
(?, ?, ?)