Можете ли вы создать внешний ключ для безопасности пользователя userdetails? - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь создать схему, где пользователь может голосовать за две вещи.Важно, чтобы Пользователь не голосовал за одни и те же вещи.Для этого я пытаюсь создать схему, в которой элемент «Голосование» ссылается на две вещи и пользователя.

Проблема в том, что я не могу создать спящий режим JoinColumn для пользователя Spring Security какПользователь не является сущностью.

Могу ли я создать эти отношения?Есть ли лучший подход для того, чтобы голосование имело ссылку на пользователя?

@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"winnerThingID", "loserThingID", "userID"})})
public class Vote {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer voteID;

@ManyToOne
@JoinColumn(name="winnerThingID",foreignKey=@ForeignKey(name="FK_vote_2"))
private Thing winnerThing;

@ManyToOne
@JoinColumn(name="loserThingID",foreignKey=@ForeignKey(name="FK_vote_3"))
private Thing loserThing;

@ManyToOne
@JoinColumn(name="userID",foreignKey=@ForeignKey(name="FK_vote_4"))
private User user;

1 Ответ

0 голосов
/ 30 сентября 2018

Класс Spring User - это простой класс, а не сущность, так как вам потребуется моделировать отношение внешнего ключа.Как правило, вы должны определить конкретную сущность User, адаптированную к потребностям вашего приложения, и использовать ее при моделировании отношений между сущностями.

Spring security User представляет аутентифицированного пользователя в контексте вашего приложения.Вы должны выполнить необходимые реализации / расширения служб Spring таким образом, чтобы вам потребовались данные вашего User объекта, когда Spring необходимо выполнить аутентификацию с учетными данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...