Note that there are some explanatory texts on larger screens.

plurals
  1. POorg.hibernate.MappingException: Unable to find column with logical name Id
    primarykey
    data
    text
    <p>It's just one of my first demos on JPA and it's so simple that this error drives me crazy:(</p> <h2><strong>Database (postgresql)</strong></h2> <pre><code>CREATE TABLE "Order" ( "Id" integer NOT NULL, "DateOf" timestamp with time zone, "Description" text, CONSTRAINT "PK_Id" PRIMARY KEY ("Id" ) ) CREATE TABLE "LineItem" ( "Id" oid NOT NULL, "OrderId" integer, "Cost" money, CONSTRAINT "LineItem_Id" PRIMARY KEY ("Id" ), CONSTRAINT "LineItem_OrderId_fkey" FOREIGN KEY ("OrderId") REFERENCES "Order" ("Id") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) </code></pre> <h2><strong>Model</strong></h2> <pre><code>@Entity @Table(name="\"Order\"") @XmlRootElement(name="Order") public class Order implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column(name="\"Id\"") public int Id; @Column(name="\"DateOf\"") public java.util.Date DateOf; @Column(name="\"Description\"") public String Description; @OneToMany(cascade=CascadeType.REMOVE, mappedBy="order") public List&lt;LineItem&gt; Items; } @Entity @Table(name="\"LineItem\"") public class LineItem implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column(name="\"Id\"") public int Id; @ManyToOne(cascade=CascadeType.REMOVE) @JoinColumn(name="\"OrderId\"", referencedColumnName="Id") public Order order; } </code></pre> <h2><strong>middle-tier</strong></h2> <pre><code>EntityManagerFactory entityManagerFactory = Persistence .createEntityManagerFactory("store"); EntityManager entityManager = entityManagerFactory .createEntityManager(); Query select = entityManager.createQuery("select t from Order t"); </code></pre> <h2><strong>exception</strong></h2> <pre><code>org.hibernate.MappingException: Unable to find column with logical name: Id in org.hibernate.mapping.Table(Order) and its related supertables and secondary tables org.hibernate.cfg.Ejb3JoinColumn.checkReferencedColumnsType(Ejb3JoinColumn.java:552) org.hibernate.cfg.BinderHelper.createSyntheticPropertyReference(BinderHelper.java:257) org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:116) org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1525) org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1446) org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1351) org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737) org.hibernate.ejb.EntityManagerFactoryImpl.&lt;init&gt;(EntityManagerFactoryImpl.java:94) org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890) org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) rest.Orders.List(Orders.java:37) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload