как последующее из hibernate необязательное соединение
Многие существующие в системе запросы основаны на наличии сопоставленных отношений между EntityOne и EntityTwo, и изменение этого параметра не является уязвимым, однакоТеперь мне нужно начать хранить и извлекать значения в tbl_one.two_id
, которых нет в объединенной таблице.По пути это прекрасно работает со следующим отображением:
@Entity
@Table(name="tbl_one")
public class EntityOne
{
....
@ManyToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "two_id")
private EntityTwo two;
....
}
.. Однако при запросе, если результат имеет значение для two_id
, которого нет в объединенной таблице, значение дляполе two
является нулевым, и я не могу сказать, каково значение для tbl_one.two_id
на самом деле.Я надеялся, что hibernate создаст фиктивный объект EntityTwo
и заполнит его поле id только в том случае, если связь не существует.
Я также попытался сопоставить two_id
с другим полем без объединения:
@Entity
@Table(name="tbl_one")
public class EntityOne
{
....
@ManyToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "two_id", insertable = false, updatable = false)
private EntityTwo two;
@Column(name = "two_id")
private String twoId;
....
}
... но тогда поле two
никогда не заполняется, даже когда соответствующая запись существует.
По сути, мне нужен какой-то способ вставки / обновления значения для tbl_one.two_id
и извлеченияобъединенная сущность для EntityTwo
, если связь существует, или просто значение для tbl_one.two_id
, если связь не существует.
Я надеюсь, что смогу решить эту проблему без создания двух сопоставлений для одного и того жеТаблица.
спасибо.
РЕДАКТИРОВАТЬ: больше информации
public class EntityTwo
{
...
@Id
@Column(name = "site_id")
private String id;
...
}