установка плагина из РФ получиалсь только
с VPN германии
чтобы это заработало нужно в проект добавить зависимости JPA
![[Pasted image 20241004071439.png]]
затем заходим в View -> Tool Window -> JPA Exploer
![[Pasted image 20241004071944.png]]
так как я получаю вот такой результат при клике правой кнопки мыши на пакет где планирую создать класс New -> JPA Entitites from DB
![[Pasted image 20241005051108.png]]
то я использую код sql который у меня благо сохранён по которому создаются таблицы базы чтобы скормить это duck.ai
Промт для duck.ai
у меня есть две модели которые я хочу создать из базы postgresql делается проекта на java spring используя JPA Buddy, но с урезанным функционалом который не позволяет создавать JPA Entities from DB средствами IDE, но сами библиотека JPA Buddy установлена и аннотации @Entity @Column @Table и все прочие имеется возможность использовать. поэтому создай модели для двух классов User.java и Contact.java по этому коду
create table IF NOT EXISTS "Users" (
id INT GENERATED ALWAYS AS IDENTITY,
name varchar(255) not null,
PRIMARY KEY(id)
);
create table if not exists "Contacts"(
id INT generated always as identity,
"customerId" INT,
"contactName" VARCHAR(255) not null,
phone VARCHAR(15),
email VARCHAR(255),
primary key(id),
constraint fk_customer
foreign key("customerId")
references "Users"(id)
);
первый ответ не полный
погоди я не вижу в классах связи по id между этим классами в твоём коде, где она?
ответ2
User.java
import javax.persistence.*;
import java.util.List;
@Entity
@Table(name = "Users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false, length = 255)
private String name;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Contact> contacts;
// Конструкторы
public User() {
}
public User(String name) {
this.name = name;
}
// Геттеры и сеттеры
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Contact> getContacts() {
return contacts;
}
public void setContacts(List<Contact> contacts) {
this.contacts = contacts;
}
}
Contact.java
```java import javax.persistence.*;
@Entity @Table(name = "Contacts") public class Contact {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne
@JoinColumn(name = "customerId", nullable = false)
private User user;
@Column(name = "contactName", nullable = false, length = 255)
private String contactName;
@Column(name = "phone", length = 15)
private String phone;
@Column(name = "email", length = 255)
private String email;
// Конструкторы
public Contact() {
}
public Contact(User user, String contactName, String phone, String email) {
this.user = user;
this.contactName = contactName;
this.phone = phone;
this.email = email;
}
// Геттеры и сеттеры
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getContactName() {
return contactName;
}
public void setContactName(String contactName) {
this.contactName = contactName;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
} ``````
пример
смотри на классы Users.java Contacts.java UserRepository.java UserController.java
https://gitlab.com/synergy9980417/razdel2/8_3
ещё можно добавить и этот функционал в контроллер
![[Pasted image 20241005104041.png]]