Как вставить строки в таблицу при использовании GenerationType.table?MySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Как вставить строки в таблицу при использовании GenerationType.table?

Сообщение Anonymous »

Я использую Hibernate для этого проекта. У меня есть суперкласс Mensajes с 2 постами подклассов и разрешений, и я использую стратегию наследования «таблица на класс». Я пытаюсь генерировать идентификаторы для этого класса, используя стратегию таблицы, поскольку я работаю с MySQL для базы данных. это, и когда я пытаюсь установить его, чтобы выбирать данные из таблицы, созданной с помощью стратегии GenerationType.table, это (очевидно) не является автоматическим обновлением. файл. Надеюсь, нет: (< /p>
Это суперкласс Mensajes (другие атрибуты, опущенные для краткости): < /p>
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Mensajes {

@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "id_gen")
@TableGenerator(table = "mid_seq", name = "id_gen", initialValue = 0, allocationSize = 1)
private Long id;

private String fecha, cont;

//...getters, setters, etc
< /code>
subclass Resenia: < /p>
@Entity
public class Resenia extends Mensajes{

@ColumnDefault("0")
private int rating;

//...getters, setters, etc
< /code>
Пост подкласса: < /p>
@Entity
public class Post extends Mensajes {

@ColumnDefault("0")
private int votos;

//...getters, setters, etc
< /code>
Вывод Hibernate's re: таблица «последовательность»: < /p>
Hibernate:
create table mid_seq (
next_val bigint,
sequence_name varchar(255) not null,
primary key (sequence_name)
) engine=InnoDB
Hibernate:
insert into mid_seq(sequence_name, next_val) values ('mensajes',0)
< /code>
Что я пытаюсь вставить: < /p>
insert into resenia(id, fecha, cont, rating) values ((select next_val from mid_seq), "01/01/2000", "BUU", 2);
insert into resenia(id, fecha, cont, rating) values ((select next_val from mid_seq), "01/01/2003", "bien", 4);
< /code>
Правильно встает первый, но 2-й показывает: < /p>
SQL Error [1062] [23000]: Duplicate entry '0' for key 'PRIMARY'
< /code>
Кстати, когда я говорю «опустить поле идентификатора», я имел в виду попытку вставить так: < /p>
insert into resenia(fecha, cont, rating) values ("01/01/2000", "BUU", 2);
< /code>
, которые бросают: < /p>
SQL Error [1364] [HY000]: Field 'id' doesn't have a default value
< /code>
это безнадежно? Должен ли я попробовать @mappedsuperclass для наследства?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как вставить строки в таблицу при использовании GenerationType.table?
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как вставить строки в таблицу при использовании GenerationType.table?
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Класс jakarta.persistence.generationtype не имеет члена поля «jakarta.persistence.generationtype uuid '
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Укладка элементов div по вертикали при использовании display:table, table-row, table-cell
    Anonymous » » в форуме CSS
    0 Ответы
    124 Просмотры
    Последнее сообщение Anonymous
  • Ef core enum to table table table intrond
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

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