#spring-boot #spring-data-jpa #spring-data #spring-data-rest
Вопрос:
У меня есть два вопроса. Первый вопрос У меня есть две сущности с именами пользовательских сущностей и сведениями о пользователе, а также репозиторий, называемый репозиторием пользователей. Пользователь и описание пользователя имеют отношение «один ко многим». Теперь я могу просматривать данные об отношениях пользователей и информацию о пользователях в хранилище пользовательских данных, но когда я добавляю новое хранилище, реляционные данные больше не отображаются в данных хранилища пользователей. Я не понимаю причины
Как я могу решить эту проблему? Спасибо
Сущность пользователя
@Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) private Long id; @Column(name = "LAST_NAME", nullable = false) private String lastName; @OneToMany(fetch = FetchType.LAZY, mappedBy = "user") @JsonManagedReference private Setlt;UserDetailsgt; lstUserDetail=new HashSetlt;gt;(); public User() { } public User(Long id, String lastName, Setlt;UserDetailsgt; lstUserDetail) { this.id = id; this.lastName = lastName; this.lstUserDetail = lstUserDetail; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Setlt;UserDetailsgt; getLstUserDetail() { return lstUserDetail; } public void setLstUserDetail(Setlt;UserDetailsgt; lstUserDetail) { this.lstUserDetail = lstUserDetail; } }
Сведения о пользователе Сущность
@Entity @Table(name = "user_details") public class UserDetails { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) private Long id; @Column(name = "PHONE", nullable = false) private String phone; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "USER_ID") @JsonBackReference private User user; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public UserDetails() { } public UserDetails(Long id, String phone, User user) { this.id = id; this.phone = phone; this.user = user; } }
Репозиторий пользователей
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.rest.core.annotation.RepositoryRestResource; @RepositoryRestResource(collectionResourceRel = "user", path = "user") public interface UserRepository extends JpaRepositorylt;User,Longgt; { }
Вывод с помощью пользовательского репозитория:
введите описание изображения здесь
Но когда я добавлю хранилище сообщений пользователей:
Репозиторий сообщений пользователей
package com.example.demo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.rest.core.annotation.RepositoryRestResource; import org.springframework.stereotype.Repository; @RepositoryRestResource(collectionResourceRel = "userdetails",path = "userdetails") public interface UserDetailRepository extends JpaRepositorylt;UserDetails,Longgt; { }
Совет:Это второе хранилище
Новый Результат:
введите описание изображения здесь
Вопрос 2 . Когда я изменяю @JsonManageRefrence и @JsonBackRefrence на идентификатор пользователя и сведения о пользователе , я не могу видеть сведения о пользователе в хранилище данных . Как я могу это решить ?
Я также использовал @ JsonIgnore и @ JsonIdentityInfo, но результат не изменился. Как я могу увидеть данные об этом?
Спасибо.
Комментарии:
1. Ваш вопрос не имеет смысла, репо такое же, как и результат. Пожалуйста, правильно задайте вопрос
2. @M. Deinum Я, вероятно, не смог передать, что я имел в виду, я изменил название и текст вопроса спасибо
3. Это все еще не имеет смысла. Вы все еще ссылаетесь на тот же вывод и включаете тот же репозиторий. Итак, как мы должны знать, что вы добавили, если вы не добавляете это в свой вопрос.
4. @M. Deinum Я вас не понимаю . У меня есть два репозитория, и я объяснил, что при добавлении второго репозитория данные о взаимоотношениях больше недоступны. Я также ввел все коды. Какую часть моего вопроса вы имеете в виду?
5. Я сдаюсь… Ты ничего не дал. Вы дважды включили один и тот же снимок экрана с данными и дважды включили один и тот же репозиторий… Но я отступаю, так как вы не собираетесь предоставлять надлежащую информацию.