Код: Выделить всё
Apr 26, 2024 11:33:44 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [name: default]
Apr 26, 2024 11:33:44 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate ORM core version 6.0.2.Final
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using built-in connection pool (not intended for production use)
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: Loaded JDBC driver class: org.postgresql.Driver
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001012: Connecting with JDBC URL [jdbc:postgresql://aws-0-ap-southeast-1.pooler.supabase.com/postgres]
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {password=****, user=postgres.lfmakwarfqeintgjcseo}
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections
INFO: HHH10001115: Connection pool size: 20 (min=1)
Apr 26, 2024 11:33:45 AM org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl logSelectedDialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
Apr 26, 2024 11:33:46 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:postgresql://aws-0-ap-southeast-1.pooler.supabase.com/postgres]
Exception in thread "main" jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1509)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1430)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55)
at jakarta.persistence@3.0.0/jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80)
at jakarta.persistence@3.0.0/jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at org.example.insurancemanagementapplication/Entity.Testing.main(Testing.java:16)
Caused by: org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:103)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:75)
at org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.processBootEntities(MappingMetamodelImpl.java:277)
at org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.finishInitialization(MappingMetamodelImpl.java:210)
at org.hibernate.metamodel.internal.RuntimeMetamodelsImpl.finishInitialization(RuntimeMetamodelsImpl.java:60)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:308)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:415)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1425)
... 4 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String Entity.User.id accessible: module org.example.insurancemanagementapplication does not "opens Entity" to unnamed module @7920ba90
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:388)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:364)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:312)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:177)
at org.hibernate.internal.util.ReflectHelper.ensureAccessibility(ReflectHelper.java:412)
at org.hibernate.internal.util.ReflectHelper.findField(ReflectHelper.java:402)
at org.hibernate.property.access.internal.PropertyAccessFieldImpl.(PropertyAccessFieldImpl.java:34)
at org.hibernate.property.access.internal.PropertyAccessStrategyFieldImpl.buildPropertyAccess(PropertyAccessStrategyFieldImpl.java:26)
at org.hibernate.metamodel.internal.EntityRepresentationStrategyPojoStandard.makePropertyAccess(EntityRepresentationStrategyPojoStandard.java:381)
at org.hibernate.metamodel.internal.EntityRepresentationStrategyPojoStandard.(EntityRepresentationStrategyPojoStandard.java:146)
at org.hibernate.metamodel.internal.ManagedTypeRepresentationResolverStandard.resolveStrategy(ManagedTypeRepresentationResolverStandard.java:60)
at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:725)
at org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:152)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:92)
... 11 more
Код: Выделить всё
@MappedSuperclass
public class User {
@Id
@Column(name = "id")
private String id;
@Basic
@Column(name = "full_name")
private String fullName;
@Basic
@Column(name = "address")
private String address;
@Basic
@Column(name = "phone_number")
private String phoneNumber;
@Basic
@Column(name = "email")
private String email;
@Basic
@Column(name = "password")
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User that = (User) o;
return Objects.equals(id, that.id) && Objects.equals(fullName, that.fullName) && Objects.equals(address, that.address) && Objects.equals(phoneNumber, that.phoneNumber) && Objects.equals(email, that.email) && Objects.equals(password, that.password);
}
@Override
public int hashCode() {
return Objects.hash(id, fullName, address, phoneNumber, email, password);
}
}
Код: Выделить всё
@Entity
@Table(name = "system_admin", schema = "public", catalog = "postgres")
public class SystemAdmin extends User {
}
Код: Выделить всё
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default");
EntityManager entityManager = entityManagerFactory.createEntityManager();
EntityTransaction transaction = entityManager.getTransaction();
try{
transaction.begin();
SystemAdmin systemAdmin = new SystemAdmin();
systemAdmin.setId("SA1232678");
systemAdmin.setFullName("Tran Ba Duong");
systemAdmin.setPassword("Duongsssber123");
systemAdmin.setEmail("trunDuong0806@gmail.com");
systemAdmin.setPhoneNumber("0909154614");
systemAdmin.setAddress("999 Elizabeth street Carlton 3053 VIC");
entityManager.persist(systemAdmin);
transaction.commit();
} finally {
if (transaction.isActive()){
transaction.rollback();
}
entityManager.close();
entityManagerFactory.close();
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... o-database
Мобильная версия