There is a table of Events

------------------------------ | id (bigserial) |<----- ------------------------------ | | name (character varying) | | ------------------------------ | | parent (fk) |------ ------------------------------ 

And event model

 @Entity @Table(name = "events") public class Event implements Serializable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name = "event_generator", sequenceName = "event_id_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "event_generator") @Basic(optional = false) private Long id; @Basic(optional = false) @NotNull @Size(min = 1, max = 150) @Column(name = "name") private String name; @JoinColumn(name = "parent", referencedColumnName = "id") @ManyToOne(fetch = FetchType.LAZY) private Event parent; @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent") private List<Event> children; public Event() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Event getParent() { return parent; } public void setParent(Event parent) { this.parent = parent; } public List<Event> getChildren() { return children; } public void setChildren(List<Event> children) { this.children = children; } } 

At start the error in the column parent takes off:

Exception while preparing the app: Wrong column type in public.events for column parent. Found: int4, expected: int8

When the data type of the id changes to Integer, the error changes and appears already in the id column:

Exception while preparing the app: Wrong column type in public.events for column id. Found: bigserial, expected: int4

With any other data types, the error is the same as with Integer: Found bigserial, expected float4 / float8 / numeric (19, 2) / ...

persist in persistence.xml:

 <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL82Dialect"/> <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.jdbc.batch_size" value="200"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="hibernate.order_inserts" value="true"/> <property name="hibernate.order_updates" value="true"/> <property name="hibernate.jdbc.batch_versioned_data" value="true"/> </properties> 

The question is - how to fix everything to map correctly?

Glassrack at data type Long

 Severe: Exception while preparing the app : Wrong column type in public.event for column parent. Found: int4, expected: int8 org.hibernate.HibernateException: Wrong column type in public.event for column parent. Found: int4, expected: int8 at org.hibernate.mapping.Table.validateColumns(Table.java:372) at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1336) at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:524) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843) at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:399) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842) at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:150) at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:67) at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:199) at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:107) at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:223) at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510) at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:230) at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168) at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:925) at org.glassfish.javaee.full.deployment.EarDeployer.prepareBundle(EarDeployer.java:309) at org.glassfish.javaee.full.deployment.EarDeployer.access$200(EarDeployer.java:88) at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:155) at org.glassfish.javaee.full.deployment.EarDeployer$1.doBundle(EarDeployer.java:152) at org.glassfish.javaee.full.deployment.EarDeployer.doOnBundles(EarDeployer.java:232) at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllTypedBundles(EarDeployer.java:241) at org.glassfish.javaee.full.deployment.EarDeployer.doOnAllBundles(EarDeployer.java:267) at org.glassfish.javaee.full.deployment.EarDeployer.prepare(EarDeployer.java:152) at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:925) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:434) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:360) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:360) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534) at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224) at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) at java.lang.Thread.run(Thread.java:745) 
  • What is your database? I did not get such an error on Oracle. The default mapping in Hibernate is specified for each dialect separately in the xxxxxDialect.java class file. For example, H2Dialect.java, Oracle9Dialect .java. Have you tried to set the BigInteger type? - Orthodox
  • PostgreSQL. BigInteger tried, the error changes to Found bigserial, expected numeric (19, 2). Dialects tried to put PostgreSQLDialect and PostgreSQL82Dialect, but nothing gave - Simatsu Edgeworth
  • Please report a full stack of errors - Orthodox
  • Added by. Plus, corrected the question. It turned out that with the Long data type, an error occurred in the parent column, and when changing the data type to any other - in id - Simatsu Edgeworth
  • A what version of HIBERNATE-CORE - Orthodox

0