Я использую EclipseLink.
У меня есть объект DIDRequest, который имеет отношение «один ко многим» с DIDAllocation.
DIDRequest не всегда связан с DIDAllocation (т. Е. DIDAlloction должен быть необязательным).
У меня есть следующая сущность
@Entity
@Table(name = "tblDIDRequest")
public class DIDRequest
{
int id;
@ManyToOne(optional = true)
private DIDAllocation didAllocation;
}
Аргумент optional
, похоже, не работает, поскольку EclipseLink генерирует ограничение внешнего ключа следующим образом:
CREATE TABLE `tblDIDRequest` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`DIDALLOCATION_ID` bigint(20) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `FK_tblDIDRequest_DIDALLOCATION_ID` (`DIDALLOCATION_ID`),
CONSTRAINT `FK_tblDIDRequest_DIDALLOCATION_ID` FOREIGN KEY (`DIDALLOCATION_ID`) REFERENCES `tblDIDAllocation` (`ID`),
);
Как мне изменить аннотацию, чтобы она не генерировала ограничение внешнего ключа?
Есть ли способ установить ограничение, так что если didAllocation существует, тогда должна быть связанная сущность, но если это нуль, нам все равно?