package com.farata.hibernate_test.service;
import java.util.List;
import com.farata.hibernate_test.entity.Company;
import com.farata.hibernate_test.entity.CompanyAssociate;
import clear.cdb.extjs.annotations.JSGenerateStore;
import clear.cdb.extjs.annotations.JSJPQLMethod;
import clear.cdb.extjs.annotations.JSService;
import clear.cdb.extjs.annotations.JSTransferInfo;
import clear.cdb.extjs.annotations.JSUpdateInfo;
@JSService
public interface ICompanyService {
@JSGenerateStore
@JSJPQLMethod(
query="SELECT c FROM Company c",
transferInfo=@JSTransferInfo(type="com.farata.hibernate_test.dto.CompanyDTO"),
updateInfo=@JSUpdateInfo(updateEntity=Company.class, keyPropertyNames="id", updatablePropertyNames="company", autoSyncEnabled=true)
)
List<?> getCompanies();
@JSGenerateStore
@JSJPQLMethod(
query="SELECT a.id, a.companyId, a.associate FROM CompanyAssociate a WHERE a.companyId=:companyId",
transferInfo=@JSTransferInfo(type="com.farata.hibernate_test.dto.AssociateDTO"),
updateInfo=@JSUpdateInfo(updateEntity=CompanyAssociate.class, keyPropertyNames="id", updatablePropertyNames="companyId,associate", autoSyncEnabled=true)
)
List<?> getAssociates(Integer companyId);
}