У меня есть 2 таблицы (Пользователь и Лента), связанные внешним ключом.После этого я использую Spring Boot и Hibernate, чтобы сделать запрос, чтобы просто распечатать все значения в таблице каналов.Но когда дело доходит до внешнего ключа и его значения, моя сущность, похоже, работает неправильно, когда создает на лету новый столбец, когда у меня уже есть столбец для внешнего ключа.
Могу ли я узнать, чтоЯ делаю не так?Новое в этой настройке JPA.Я не уверен, стоит ли мне сначала создавать свою схему или позволить JPA просто обрабатывать вещи в соответствии с моими настройками Entity.Очевидно, я упускаю что-то жизненно важное, но просто не могу на это указать.Пожалуйста помогите.
Вопрос: как мне сопоставить внешний ключ?Как и в карте внешнего ключа таблицы каналов 'имя_хозяина' для таблицы пользователя 'имя_пользователя * на объекте?
Структуры таблиц
Объекты
Пользовательский элемент
@Entity
public class User {
@Id
@Column(name = "username")
public String username;
@Column(name = "email")
public String email;
@Column(name = "password")
public String password;
@Basic
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at")
private Date createdAt;
@Column(name = "online_status")
private long onlineStatus;
@Column(name = "account_status")
private long accountStatus;
//updated this based on Gopi's suggestion
@OneToMany(mappedBy = "ownerName")
private List<Feed> feeds;
}
Источник данных
@Entity
public class Feed {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "feed_id")
private long feedId;
@Column(name = "title")
private String title;
@Basic
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at")
private Date createdAt;
@Basic
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_at")
private Date updatedAt;
@ManyToOne
@JoinColumn(name = "username")
// @Column(name = "owner_name")
private User ownerName;
}
Мой запрос просто получить все данные фида, где я получаю все данные, кроме значения для внешнего ключа, которое получается как ноль.(ожидая получить значение внешнего ключа вместо этого).
Мой контроллер вызывает этот метод, где я получаю все результаты, кроме значения внешнего ключа.
public interface FeedRepository extends JpaRepository<Feed, Long> {
@Query("select f from Feed as f order by f.createdAt desc")
List<Feed> getCurrentFeeds();
}
Проверка значений внутри таблиц.
Данные таблицы пользователя
Данные таблицы подачи
Если я запускаю свой текущий код, я на лету получаю дополнительный столбец, который мне не нужен, как упоминалось выше.