сопоставить только один столбец в отношении JoinTable - PullRequest
0 голосов
/ 30 августа 2018

У меня есть 3 таблицы:

BusinessRole

  • идентификатор
  • имя

BusinessRole_ActorType (таблица ссылок)

  • role_identifier
  • actorType_identifier

ActorType

  • идентификатор
  • имя (варчар)

Мне нужно создать сущность JPA, BusinessRole, которая объединяет таблицы и предоставляет список типов actorTypes в сущности, используя только имя из таблицы ActorType.

Я знаю, что могу добиться аналогичного результата, создав сущность ActorType и добавив @ManyToMany с @JoinTable, но это добавит дополнительный объект, и меня интересует только значение String.

Код ниже показывает, чего я хочу достичь.

@Entity
public class BusinessRole {

    //TODO: Fill in with appropriate annotations :)
    @ManyToMany
    @JoinTable(....)
    private List<String> assignableActorTypes;
}

Заранее спасибо за любую поддержку.

1 Ответ

0 голосов
/ 30 августа 2018

Если вы не создадите никакой сущности для ActorType, hibernate не сможет получить доступ к этой таблице, потому что у hibernate нет никакого способа узнать о ее существовании.

Если вы действительно не хотите создавать модель для ActorType, тогда вы можете использовать собственные запросы SQL. Но не забудьте проверить наличие SQL-инъекций, поскольку нативные SQL-запросы более подвержены таким атакам.

Но я не думаю, что есть какой-то возможный способ получить List, как вы ищете.

...