Manohar Ch
Manohar Ch

Reputation: 465

How to get an existing MediaContainerModel in hybris?

I tried to get MediaFormatModel, MediaModel, MediaFolderModel etc with the help of MediaService but only the MediaContainer is not possible to get from MediaService and I tried with ModelService. Only one possibility I found that by getting MediaModel we can get the MediaContainerModel but I need to get specific MediaContainerModel by passing qualifier. Like for example:

final MediaModel mm1 = mediaService.getMedia(catalogVersion, "picture515x515");
final MediaFormatModel mf1200 = mediaService.getFormat("1200x1200");
final MediaFolderModel mfm = mediaService.getFolder("convertedimages");

any help?

Upvotes: 0

Views: 1191

Answers (3)

Manohar Ch
Manohar Ch

Reputation: 465

I got the solution we can get as follows

@Autowired
MediaContainerService mediaContainerService;

......
MediaContainerModel mediaContainer = null;
try
{
mediaContainer =
mediaContainerService.getMediaContainerForQualifier("testContainer"); }
catch (final Exception e)
{
mediaContainer = createMediaContainer("testContainer");
}
mediaContainer.setCatalogVersion(catalogVersion);

Upvotes: 0

NISHANT CHELLANI
NISHANT CHELLANI

Reputation: 11

     private MediaContainerModel getExistingMediaContainer(CatalogVersionModel catalogVersion, String qualifier) {
    final String query = "SELECT {" + MediaContainerModel.PK + "} FROM {" + MediaContainerModel._TYPECODE + "} "
            + "WHERE {" + MediaContainerModel.QUALIFIER + "} = ?qualifier AND " + "{" + MediaContainerModel.CATALOGVERSION + "} = ?catalogVersion";
    final FlexibleSearchQuery fQuery = new FlexibleSearchQuery(query);
    fQuery.addQueryParameter("qualifier", qualifier);
    fQuery.addQueryParameter("catalogVersion", catalogVersion);
    final SearchResult<MediaContainerModel> searchResult = flexibleSearchService.search(fQuery);
    if (searchResult.getTotalCount() > 0) {
        return searchResult.getResult().get(0);
    } else {
        return null;
    }
}

Upvotes: 1

thijsraets
thijsraets

Reputation: 582

You can always retrieve models using the flexiblesearh getModelByExample

CatalogVersionModel catalogVersion = catalogVersionService.getCatalogVersion("yourCatalogName", "version");

MediaContainerModel container = new MediaContainerModel();
container.setCatalogVersion(catalogVersion);
container.setQualifier("yourQualifier");
try
{
    container = flexibleSearchService.getModelByExample(container);
}//no container found
catch (final ModelNotFoundException ex)
{
   ...
}

Upvotes: 1

Related Questions