Атрибут test2UUID моделируется как необходимый.Насколько мне известно, это приведет к обязательному параметру операции создания сгенерированного фабричного класса.Если вы отметите SlotPageletAssignmentPO
, он моделируется очень похоже.
orm class SlotPageletAssignmentPO extends PersistentObjectPO implements SlotPageletAssignment table "SlotPageletAssignment"
{
attribute id : string<256> required readonly;
attribute parentSlotID : uuid required;
attribute subPageletID : uuid required;
attribute validFrom : datetime;
attribute validTo : datetime;
attribute online : boolean;
attribute position : double required;
relation subPageletPO : PageletPO[1..1] inverse parentSlotPageletAssignmentPOs implements subPagelet readonly
{
foreign key(subPageletID) -> (UUID);
}
relation parentSlotPO : SlotPO[1..1] inverse slotSubPageletAssignmentPOs implements parentSlot readonly
{
foreign key(parentSlotID) -> (UUID);
}
relation placeholderPO : SlotPageletAssignmentPlaceholderPO[0..n] inverse assignment readonly;
}
parentSlotID
и subPageletID
оба являются обязательными UUID, используемыми двумя отношениями, которые оба реализуют отношения, объявленные в интерфейсе capi.
cartridge interface SlotPageletAssignment extends PageletAssignment
{
attribute id: string required readonly;
attribute online : boolean;
attribute validFrom : datetime;
attribute validTo : datetime;
attribute position : double required;
/*
* @deprecated Use {@link #getTo()} instead
*/
relation parentSlot : Slot[0..1] readonly;
/*
* @deprecated Use {@link #getFrom()} instead
*/
relation subPagelet : Pagelet[0..1] readonly;
}
Как видите, только отношения, но не атрибуты внешнего ключа, которые являются частью освобождения, объявляются на уровне интерфейса.Вы можете попробовать этот подход.