JPA Metamodel generation issue

1.3k Views Asked by At

I'm using Eclipse build-in feature to generate JPA metamodel in my projects. Previosly it was generated perfectly, but after that something happened and now my metamodel classes are generated incomplete/wrong. Please note, that entity classes themselves didn't change a bit.
That's how it was generated just a few months ago:

@Generated(value="Dali", date="2014-03-03T15:27:31.931+0200")
@StaticMetamodel(AsmensZyma.class)
public class AsmensZyma_ {
    public static volatile SingularAttribute<AsmensZyma, Long> id;
    public static volatile SingularAttribute<AsmensZyma, Asmuo> asmuo;
    public static volatile SingularAttribute<AsmensZyma, AsmensZymaSource> registas;
    public static volatile SingularAttribute<AsmensZyma, Date> data;
    public static volatile SingularAttribute<AsmensZyma, String> roik;
    public static volatile SingularAttribute<AsmensZyma, String> pastaba;
}

And how it is being generated now:

@Generated(value="Dali", date="2014-05-30T11:48:56.816+0300")
@StaticMetamodel(AsmensZyma.class)
public class AsmensZyma_ {
   public static volatile SingularAttribute<AsmensZyma, Long> id;
   public static volatile SingularAttribute<AsmensZyma, Object> asmuo;
}

Note that there are plenty of missing fields, and fields types are not detected properly. This happens TO ALL my entity classes in ALL my projects... What I have tried so far:

  • Upgrading STS (currently using 3.5.1)
  • Cleaning/refreshing/updating projects
  • Re-configuring JPA metamodel generation in STS
  • Creating brand new clean workspace and importing only one project to it

Nothing helps so far...
Any suggestions or help is highly appretiated!

1

There are 1 best solutions below

0
On

Using Dali is one way, but you could just try using the metamodel generator of one of the JPA implementations itself. For example I use DataNucleus JPA and follow this page

http://www.datanucleus.org/products/accessplatform_4_0/jpa/jpql_criteria.html#metamodel

The Eclipse instructions are at the bottom of the page.