# discriminator

## Purpose

Customizes the discriminator value used in table-per-subclass inheritance mapping.

## Examples

    class Content {
    	…
    }
    class PodCast extends Content{
    	…
    	static mapping = {
    		discriminator "audio"
    	}
    }

## Description

Usage: `discriminator(string/map)`

Arguments:

- `column` (optional) - The column name to store the discriminator
- `value` - The value to use for the discriminator

By default when mapping inheritance Grails uses a single-table model so that all subclasses share the same table. A discriminator column is then used to help Grails tell what type a particular row is. By default the class name is stored as the value of this column. You can use the `discriminator` method to customize the value stored:

    class Content {
    	…
    }
    class PodCast extends Content{
    	…
    	static mapping = {
    		discriminator "audio"
    	}
    }

You can also customize the discriminator column name:

    class Content {
    	…
    }
    class PodCast extends Content{
    	…
    	static mapping = {
    		discriminator column:"content_type",  value: "audio"
    	}
    }