eclipse-ee4j / jakartaee-tutorial

Jakarta EE Tutorial
https://eclipse-ee4j.github.io/jakartaee-tutorial
Eclipse Public License 2.0
96 stars 67 forks source link

Oracle JPA tutorial contains INCORRECT use of static metamodel #249

Open lukasj opened 3 years ago

lukasj commented 3 years ago

(original issue: https://github.com/eclipse-ee4j/jpa-api/issues/121)

See this page https://docs.oracle.com/javaee/6/tutorial/doc/gjiup.html

It says

"The following code snippet shows how to obtain the Pet entity’s metamodel class by calling Root.getModel: EntityManager em = ...; Root pet = cq.from(Pet.class); EntityType Pet_ = pet.getModel();"

Pet is the CANONICAL static metamodel and does NOT implement EntityType. This is utterly wrong. You get Pet by statically referring to it, and it is generated by an annotation processor.

The same tutorial even has @Static Metamodel(Pet.class) public class Pet_

{ public static volatile SingularAttribute<Pet, Long> id; public static volatile SingularAttribute<Pet, String> name; public static volatile SingularAttribute<Pet, String> color; public static volatile SetAttribute<Pet, Owner> owners; }

so it says Pet_ does not implement EntityType (and indeed is nothing to do with it).

This should be FIXED ASAP, or you will utterly confuse people