Я пытаюсь добавить отношение «многие к одному» в таблицу A
, так как A
необходимо будет иметь возможность получать столбцы B
каждый раз, когда пользователь публикует / помещает / получает / et c в таблицу A
с возможностью обновления name
.
Если A
создать с id = "aaa"
и name = "a_name"
, он должен получить столбцы с такими же id
и name
из таблицы B
. Если A
обновляется с id = "aaa"
и name = "b_name"
, это делает то же самое.
Проблема в том, что между двумя таблицами нет fk или другого отношения, даже если hibernate не заботится об ограничении.
Есть идеи, как это исправить?
Table A
id (PK) vachar
name vachar
xxx
yyy
zzz
Table B
id (PK) vachar
nm (PK) vachar
aaa
bbb
ccc
Код:
public class A implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id", referencedColumnName = "id")
@JoinColumn(name = "name", referencedColumnName = "nm")
public B b;
}
работает, если я поставлю insertable = false
и updatable = false
, но это не соответствует требованию, поскольку таблица A
должна обновлять имя.
public class B implements Serializable {
@Id
@Column(name = "id")
String id;
@Id
@Column(name = "nm")
String name;
}