У меня есть проект SpringBoot с Spring Data.Дополнительный столбец создается, когда я использую одно и то же имя столбца для 2 таблиц, сопоставленных с помощью ManyToOne Relation.У меня есть таблица адресов с именем столбца "id" и таблица AddressType с именем столбца "id".Когда я запускаю приложение Spring Boot с этим, я вижу дополнительный столбец (address_id), созданный в таблице адресов.
Address.java
package com.springtesting.model;
import lombok.Data;
import javax.persistence.*;
@Entity
@Data
@Table(name = "address")
public class Address
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "street_name")
private String streetName;
@Column(name = "apartment")
private String apartment;
@Column(name = "city")
private String city;
@Column(name = "state")
private String state;
@Column(name = "country")
private String country;
@Column(name = "zip_code")
private String zipCode;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "address_type_id")
private AddressType addressType;
public Address()
{
}
public Address(String streetName, String apartment, String city, String state, String country, String zipCode, AddressType addressType)
{
this.streetName = streetName;
this.apartment = apartment;
this.city = city;
this.state = state;
this.country = country;
this.zipCode = zipCode;
this.addressType = addressType;
}
}
и
AddressType.Java
package com.springtesting.model;
import lombok.Data;
import lombok.NonNull;
import javax.persistence.*;
@Entity
@Data
@Table(name = "address_type")
public class AddressType
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "type")
@NonNull
private String type;
public AddressType()
{
}
public AddressType(String type)
{
}
}
когда я запускаю приложение Spring Boot, я вижу дополнительный столбец (address_id)
Структура таблицы на Mysql