Я хочу уточнить определение первичного ключа Hibernate.
Сценарий: у меня есть таблица, определенная в MySql, которая уже предназначена для автоматической генерации первичных ключей.
Меня попросили создать класс сущности для существующей таблицы, которая уже находится в базе данных, как упомянуто выше в secnario.
Требуется уточнение: Итак, я прошел через классы Hibernate EntityКак и в документации по созданию, все они говорят, что Hibernate генерирует первичный ключ при вставке записи в таблицу . Это утверждение меня немного смущает, поскольку я уже предоставил команду для генерации первичных ключей при создании таблицы базы данных. Поэтому, когда я буду вставлять записи в таблицу, используя спящий режим. Как будет сгенерирован первичный ключ? Это из-за команды, предоставленной в таблице базы данных, или аннотаций, которые используются для генерации первичного ключа при вставке записи в таблицу в классе Entity.
Пожалуйста, поясните это. Нужно ли предоставлять аннотации для генерации первичного ключа в классе Entity при вставке записей.
Например: эта команда уже использовалась для создания таблицы в базе данных.
Так что дляэта таблица я должен создать класс сущности. Так что, если я буду использовать этот код ниже, он будет работать?
CREATE TABLE address_book(Id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY,
...
);
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Table(name="address_book")
@Entity
public class AddressBook
{
private Long id;
private String name;
private String phoneNumber;
private String streetAddress;
private String zipCode;
private String city;
private String region;
private String country;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@Column(name="phone_number")
public String getPhoneNumber()
{
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber)
{
this.phoneNumber = phoneNumber;
}
@Column(name="street_address")
public String getStreetAddress()
{
return streetAddress;
}
public void setStreetAddress(String streetAddress)
{
this.streetAddress = streetAddress;
}
@Column(name="zip_code")
public String getZipCode()
{
return zipCode;
}
public void setZipCode(String zipCode)
{
this.zipCode = zipCode;
}
public String getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
public String getRegion()
{
return region;
}
public void setRegion(String region)
{
this.region = region;
}
public String getCountry()
{
return country;
}
public void setCountry(String country)
{
this.country = country;
}
}```