Create CriteriaQuery against DynamicEntity [message #1716776] |
Tue, 08 December 2015 07:38 |
Eugene Logunov Messages: 1 Registered: December 2015 |
Junior Member |
|
|
EclipseLink version 2.6.0.1
I try to create CreteriaQuery against DynamicEntity but faced with exception
java.lang.IllegalArgumentException: No [EntityType] was found for the key class [MyDynamicEntityClass] in the Metamodel
Here is how I create Query:
DynamicHelper helper = new DynamicHelper(JpaHelper.getEntityManager(entityManager).getServerSession());
Class<? extends DynamicEntity> clazz = helper.getType("MyDynamicEntityClass").getJavaClass();
CriteriaQuery query = criteriaBuilder.createQuery(clazz);
Root<? extends DynamicEntity> root = query.from(clazz);
As I figured out CriteriaQuery try to find EntityType in the Metamodel.
I looked into the source code of new dynamic entity class creation and I didn't find where DynamicEnitity is added into Metamodel.
Here is how I create the DynamicEntity class:
Session session = JpaHelper.getEntityManager(entityManager).getServerSession();
DynamicClassLoader dynamicClassLoader = DynamicClassLoader.lookup(session);
Class<?> dynamicEntityClass =
dynamicClassLoader.createDynamicClass(dynamicClassName);
JPADynamicTypeBuilder newType = new JPADynamicTypeBuilder(dynamicEntityClass, null, "dynamic_table_name");
newType.setPrimaryKeyFields("id");
newType.addDirectMapping("id", String.class, "id");
newType.addDirectMapping("objectId", String.class, "object_id");
newType.addDirectMapping("description", String.class, "desc");
jpaDynamicHelper.addTypes(false, false, newType.getType());
Is it possble to create CriteriaQuery against DynamicEntity?
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03615 seconds