Как я могу сопоставить это требование не для одного человека

#java #hibernate #jpa #mapping #one-to-many

#Ява #зимовать #jpa #отображение #один ко многим

Вопрос:

 public class UserOUData {   @Id  private Long id;   private String UserEmail; @OneToMany(mappedBy="usersId") private Long orgUnitPathId; } @Entity @Table(name="Ou") public class OU {   @Id  private long id;    private String name;    private String path;    @ManyToOne  @JoinColumn(name="orgUnitPathId")  private Collectionlt;UserOUDatagt; usersId;  }   

я попробовал некоторые из возможных примеров , но все еще сталкиваюсь с проблемой

Незаконная попытка сопоставить не коллекцию как @OneToMany, @ManyToMany или @CollectionOfElements: облачные коды.схема.генератор.модель.UserOUData.orgUnitPathId

 private Long orgUnitPathId;  @ManyToOne  @JoinColumn(name="orgUnitPathId")  private Collectionlt;UserOUDatagt; usersId;  

может ли кто-нибудь помочь мне с этим заранее спасибо.

Ответ №1:

У вас есть одна организационная единица, в которой может быть несколько пользователей, поэтому вам нужны OneToMany отношения в организационной единице:

 @Entity @Table(name="Ou") public class OU {  @Id  private long id;    private String name;  private String path;    @OneToMany(fetch = FetchType.LAZY, mappedBy = "organizationalUnit")  private Collectionlt;UserOUDatagt; usersData; }  

Для UserOUData этого вам нужно ManyToOne , так как несколько пользователей могут быть частью одного и того же OU :

 @Entity @Table(name="UserOUData") public class UserOUData {   @Id  private Long id;   private String UserEmail;    @ManyToOne(fetch = FetchType.LAZY)  @JoinColumn(name = "ou_id")  private OU organizationalUnit; }  

Эта настройка предполагает, что вы захотите сделать соединение двунаправленным между OU и UserOUData .

Комментарии:

1. Спасибо за ответ @Ervin Szilagyi, но в таблице UserOuData поле представляет длинный OrgID, а не объект OU .