Самата колона на дискриминатора се използва за разграничаване между различни класове, когато йерархиите на класовете са картографирани плоски или вертикални. Идеята зад плоското и вертикално картографиране е, че всеки клас е картографиран в един ред в таблицата на основния клас. Стойността на дискриминатора се използва за дефиниране на типа на всеки ред.
Как намирате колоната с дискриминатор?
Дефиницията на обекта: @Entity(name="Port") @DiscriminatorColumn(name="type", discriminatorType=DiscriminatorType. STRING, дължина=10) @DiscriminatorValue(value="port") @Table(name="vPorts") @XmlRootElement(name="port") публичен клас PortEntity { …
Какво е дискриминатор в Java?
Анотация Тип DiscriminatorColumn
Определя колоната на дискриминатора за стратегиите за картографиране на SINGLE_TABLE и JOIND Inheritance. Стратегията и колоната на дискриминатора са посочени само в корена на йерархия на клас на обект или подйерархия, в която се прилага различна стратегия за наследяване.
Каква е употребата на дискриминаторната колона в Hibernate?
Ако искате да използвате тази стратегия с JPA, вашата таблица на база данни трябва да има колона с дискриминатор. Стойността в тази колона идентифицира класа на обекта, към който трябва да бъде съпоставен всеки запис. По подразбиране Hibernate използва същия подход.
Каква е ползата от @DiscriminatorColumn?
Дискриминаторът ечесто се използва в SINGLE_TABLE наследяване, защото имате нужда от колона, за да идентифицирате типа на записа. Пример: Имате ученик в клас и 2 подкласа: GoodStudent и BadStudent.
