I am trying to populate some default data in database based on the user action but having some error where I understand I might have been messing up the parameter rules of Entity and UUID! Thanks for your help guiding me. The details are as follows:
Method in controller:
public void onClickInsertStages(Component source) {
planningService.loadProductionStagesToBOM((BillOfMaterial) billOfMaterialDs.getItem());
billOfMaterialCapacityRequirementsDs.refresh();
}
method in Service:
@Override
@Transactional
public void loadProductionStagesToBOM(BillOfMaterial billOfMaterialId){
try (Transaction tx = persistence.createTransaction()) {
TypedQuery<BillOfMaterialCapacityRequirements> query1 = persistence.getEntityManager().createQuery(
"select e from demo$BillOfMaterialCapacityRequirements e where e.billOfMaterial.id = ?1",
BillOfMaterialCapacityRequirements.class).setParameter(1, billOfMaterialId.getId());
List<BillOfMaterialCapacityRequirements> requirementsListList = query1.getResultList();
if(requirementsListList.size()==0){
TypedQuery<FactoryProductionStage> query2 = persistence.getEntityManager().createQuery(
"select e from demo$FactoryProductionStage e", FactoryProductionStage.class);
List<FactoryProductionStage> stageList = query2.getResultList();
if(stageList.size()>0) {
for (FactoryProductionStage stage : stageList) {
BillOfMaterialCapacityRequirements requirements = metadata.create(BillOfMaterialCapacityRequirements.class);
requirements.setBillOfMaterial(billOfMaterialId);
requirements.setBaseQuantityHours(BigDecimal.ZERO);
requirements.setFactoryProductionStage(stage);
persistence.getEntityManager().persist(requirements);
}
}
}
tx.commit();
}
}
Error:
com.haulmont.cuba.core.sys.javacl.compiler.CharSequenceCompilerException: Compilation failed. Causes:
BillOfMaterialEdit.java:95: error: incompatible types: com.company.entity.BillOfMaterial cannot be converted to java.util.UUID
planningService.loadProductionStagesToBOM((BillOfMaterial) billOfMaterialDs.getItem());
^ Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
at com.haulmont.cuba.core.sys.javacl.compiler.CharSequenceCompiler.compile(CharSequenceCompiler.java:178)
at com.haulmont.cuba.core.sys.javacl.JavaClassLoader.loadClass(JavaClassLoader.java:167)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:677)
at com.haulmont.cuba.core.sys.AbstractScripting$CubaGroovyClassLoader.loadClass(AbstractScripting.java:450)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:545)
at com.haulmont.cuba.core.sys.AbstractScripting.loadClass(AbstractScripting.java:267)
at com.haulmont.cuba.gui.WindowManager.preloadMainScreenClass(WindowManager.java:416)
at com.haulmont.cuba.gui.WindowManager.createWindow(WindowManager.java:363)
at com.haulmont.