между таблицами у меня связь один ко многим, использую аннотацию @JoinColumn
, насколько понимаю при этой аннотации просто добавляется дополнительный столбик с идентификатором к одной из таблиц, но у меня создается дополнительная промежуточная таблица, хотел бы спросить почему.
Первая сущность:
@Entity
@Table(name = "TRANSACTION")
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Long TRANSACTION_ID;
@ManyToOne
@JoinColumn(name = "ACCOUNT_ID")
private Account account;
Вторая сущность:
@Entity
@Table(name = "ACCOUNT")
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private Long ACCOUNT_ID;
@OneToMany(cascade = CascadeType.ALL)
List<Transaction> transactions = new ArrayList<>();
Использование аннотации @JoinColumn
нужно для того, чтобы указать какой столбец таблицы будет использоваться при установке соединения JOIN
в SQL запросе при выборке данных, помещаемых в данный объект. При отношениях @OneToMany
и @ManyToOne
, промежуточная таблица не используется. А используются она в случае @ManyToMany
отношений. Если таблица не используется, то её можно спокойно удалить или перегенерить схему базы данных с помощью hbm2ddl.auto=create
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как создать enum с числами? И как сравнивать их между собой?
Помогите решить проблемуНе могу понять, в чем моя ошибка
Подскажите как можно получить имя текущего класса и сделать нижний регистр(чтобы маленькими буквами был)Подзабыл вроде getClass()