JPA/Hibernate: внешние ключи не создаются, хотя я использовал @Inheritance(strategy = InheritanceType.JOINED)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JPA/Hibernate: внешние ключи не создаются, хотя я использовал @Inheritance(strategy = InheritanceType.JOINED)

Сообщение Anonymous »

У меня есть суперабстрактный класс. Пользователь:

Код: Выделить всё

package com.Abdelouadoud.MoroccoCraftsAPI.model.User;

import com.Abdelouadoud.MoroccoCraftsAPI.model.Adress;
import com.Abdelouadoud.MoroccoCraftsAPI.model.UserRole;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "users")
public abstract class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

private String firstName;
private String lastName;
private String email;
private String password;

@Enumerated(EnumType.STRING)
private UserRole userRole;

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List adressList = new ArrayList();

public User(User user) {
this.id = user.id;
this.firstName = user.firstName;
this.lastName = user.lastName;
this.email = user.email;
this.password = user.password;
this.userRole = user.userRole;
this.adressList = new ArrayList(user.adressList);
}
}

и наследуемый от него класс Customer:

Код: Выделить всё

package com.Abdelouadoud.MoroccoCraftsAPI.model.User;

import com.Abdelouadoud.MoroccoCraftsAPI.model.Order;
import com.Abdelouadoud.MoroccoCraftsAPI.model.Product;
import com.Abdelouadoud.MoroccoCraftsAPI.model.Store;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "customers")
public class Customer extends User{

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List favoriteStores = new ArrayList();

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List
 favoriteProducts = new ArrayList();

@OneToMany //A list of orders contain many orders 1-* relation
private List orders = new ArrayList();

public Customer(User user) {
super(user);
}
}

и, наконец, еще один класс Seller, наследуемый от Customer:

Код: Выделить всё

package com.Abdelouadoud.MoroccoCraftsAPI.model.User;

import com.Abdelouadoud.MoroccoCraftsAPI.model.Store;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "sellers")
public class Seller extends Customer{

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List storeList = new ArrayList();
}

проблема в том, что после выполнения кода hibernate не создает внешние ключи для суперклассов, хотя я использовал аннотацию @Inheritance(strategy = InheritanceType.JOINED):

Код: Выделить всё

Hibernate: create table customers (id bigint not null, primary key (id)) engine=InnoDB

Hibernate: create table sellers (id bigint not null, primary key (id)) engine=InnoDB
Я удалил базу данных и создал ее заново, затем перезапустил код, но проблема не исчезла.
Мне нужна ваша помощь!

Подробнее здесь: https://stackoverflow.com/questions/785 ... ncestrateg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Внешние ключи/столбцы соединения и таблицы соединения не создаются Doctrine в Symfony 5+
    Anonymous » » в форуме Php
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Jpa inheritancetype.
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Несколько абстрактных классов в JPA с inheritancetype.single_table
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Несколько абстрактных классов в JPA с inheritancetype.single_table
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Несколько абстрактных классов в JPA с inheritancetype.single_table
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»