Я использую 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
Как вставить строки в таблицу при использовании GenerationType.table? ⇐ MySql
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Укладка элементов div по вертикали при использовании display:table, table-row, table-cell
Anonymous » » в форуме CSS - 0 Ответы
- 124 Просмотры
-
Последнее сообщение Anonymous
-