Разъяснение класса Hibernate Entity для определения первичного ключа - PullRequest
0 голосов
/ 22 октября 2019

Я хочу уточнить определение первичного ключа 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;  
    }  
}```

...