У меня есть класс сущностей, аннотированный jpa:
@Configurable
@Entity
@Table(name="PLAYERS")
public class Player
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private Integer id;
@Column(name="NAME")
private String name;
@PersistenceContext
public transient EntityManager entityManager;
...
}
Это работало нормально, пока я не решил создать таблицу с резервными копиями данных yaml, используя такой синтаксис:
createNativeQuery("INSERT INTO PLAYERS ...")
После успешного создания, когда я пытаюсь создать объект с:
Player player = new Player();
player.setName("new player");
player.persist();
я получил ошибку:
SQL Error: -1, SQLState: 23505
относится к дублированию primary_keys, поскольку идентификатор, сгенерированный для нового объекта = 1 (аналогично строке, полученной из резервных данных). Конечно, я могу получить данные из файла резервной копии, используя синтаксис jpa / java, но в этом случае я не могу контролировать первичные ключи вставленных данных и т. Д.
Как решить эту проблему ? Есть ли способ обновить id_generator после вставки резервных данных?