Package com.logicaldoc.core.metadata

# Class HibernateAttributeOptionDAO

java.lang.Object
com.logicaldoc.core.HibernatePersistentObjectDAO<AttributeOption>
com.logicaldoc.core.metadata.HibernateAttributeOptionDAO

All Implemented Interfaces:
  `AttributeOptionDAO`, `PersistentObjectDAO<AttributeOption>`

@Repository("attributeOptionDAO") public class HibernateAttributeOptionDAO extends HibernatePersistentObjectDAO<AttributeOption> implements AttributeOptionDAO
Hibernate implementation of `AttributeOptionDAO`

Since:
  7.1
Author:
  Marco Meschieri - LogicalDOC

## Field Summary

### Fields inherited from interface com.logicaldoc.core.PersistentObjectDAO

`ENTITY`

## Constructor Summary

Constructors
Constructor
Description
`HibernateAttributeOptionDAO()`

## Method Summary

Modifier and Type
Method
Description
`void`
`delete(long id, int code)`
This method deletes an entity and you can give a deletion code
`void`
`deleteBySetIdAndAttribute(long setId, String attribute)`
This method deletes options.
`void`
`deleteOrphaned(long setId, Collection<String> currentAttributes)`
This method deletes the orphaned options of a given template
`List<AttributeOption>`
`findByAttribute(long setId, String attribute)`
This finds all the options for a given attribute.
`List<AttributeOption>`
`findByAttributeAndCategory(long setId, String attribute, String category)`
This finds all the options for a given attribute.
`Map<String,List<AttributeOption>>`
`findByAttributeAsMap(long setId, String attribute)`
This finds all the options for a given attribute and groups them by category.

### Methods inherited from class com.logicaldoc.core.HibernatePersistentObjectDAO

`bulkUpdate, count, deleteAll, evict, evict, findById, findByObjectQuery, findByQuery, findByQuery, findByWhere, findIdsByWhere, getDatabaseMetadata, initialize, jdbcUpdate, jdbcUpdate, query, queryForDouble, queryForDouble, queryForInt, queryForInt, queryForList, queryForList, queryForList, queryForLong, queryForLong, queryForObject, queryForObject, queryForResultSet, queryForString, queryForString, setSessionFactory, store`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface com.logicaldoc.core.PersistentObjectDAO

`bulkUpdate, count, count, count, delete, deleteAll, deleteAll, evict, evict, findAll, findAll, findAllIds, findAllIds, findById, findById, findByObjectQuery, findByQuery, findByQuery, findByWhere, findByWhere, findIdsByWhere, findIdsByWhere, getDatabaseMetadata, getDbms, initialize, initialize, isMariaDB, isMySQL, isOracle, isPostgreSQL, isSQLServer, jdbcUpdate, jdbcUpdate, query, query, queryForDouble, queryForDouble, queryForInt, queryForInt, queryForList, queryForList, queryForList, queryForLong, queryForLong, queryForObject, queryForObject, queryForResultSet, queryForString, queryForString, store`

## Constructor Details

### HibernateAttributeOptionDAO

public HibernateAttributeOptionDAO()

## Method Details

### deleteBySetIdAndAttribute

public void deleteBySetIdAndAttribute(long setId, String attribute) throws PersistenceException
Description copied from interface: `AttributeOptionDAO`
This method deletes options.

Specified by:
  `deleteBySetIdAndAttribute` in interface `AttributeOptionDAO`
Parameters:
  `setId` - ID of the attribute set
  `attribute` - Name of the attribute (optional)
Throws:
  `PersistenceException` - Error in the database

### findByAttribute

public List<AttributeOption> findByAttribute(long setId, String attribute) throws PersistenceException
Description copied from interface: `AttributeOptionDAO`
This finds all the options for a given attribute. The list is ordered by position asc.

Specified by:
  `findByAttribute` in interface `AttributeOptionDAO`
Parameters:
  `setId` - The attribute set id
  `attribute` - The attribute name (Optional)
Returns:
  The ordered list of options
Throws:
  `PersistenceException` - Error in the database

### findByAttributeAndCategory

public List<AttributeOption> findByAttributeAndCategory(long setId, String attribute, String category) throws PersistenceException
Description copied from interface: `AttributeOptionDAO`
This finds all the options for a given attribute. The list is ordered by position asc.

Specified by:
  `findByAttributeAndCategory` in interface `AttributeOptionDAO`
Parameters:
  `setId` - The attribute set id
  `attribute` - The attribute name (Optional)
  `category` - The category (Optional)
Returns:
  The ordered list of options
Throws:
  `PersistenceException` - Error in the database

### findByAttributeAsMap

public Map<String,List<AttributeOption>> findByAttributeAsMap(long setId, String attribute) throws PersistenceException
Description copied from interface: `AttributeOptionDAO`
This finds all the options for a given attribute and groups them by category. The list is ordered by position asc.

Specified by:
  `findByAttributeAsMap` in interface `AttributeOptionDAO`
Parameters:
  `setId` - The attribute set id
  `attribute` - The attribute name
Returns:
  The map of opions, key is the category
Throws:
  `PersistenceException` - Error in the database

### delete

public void delete(long id, int code) throws PersistenceException
Description copied from interface: `PersistentObjectDAO`
This method deletes an entity and you can give a deletion code

Specified by:
  `delete` in interface `PersistentObjectDAO<AttributeOption>`
Overrides:
  `delete` in class `HibernatePersistentObjectDAO<AttributeOption>`
Parameters:
  `id` - ID of the entity which should be deleted
  `code` - Deletion code
Throws:
  `PersistenceException` - raised in case of errors in the database

### deleteOrphaned

public void deleteOrphaned(long setId, Collection<String> currentAttributes) throws PersistenceException
Description copied from interface: `AttributeOptionDAO`
This method deletes the orphaned options of a given template

Specified by:
  `deleteOrphaned` in interface `AttributeOptionDAO`
Parameters:
  `setId` - ID of the attribute set
  `currentAttributes` - Names of the attributes of the actual template
Throws:
  `PersistenceException` - Error in the database