Duvida inicante sobre jpa spring boot

Tenho um banco de dados que já possui dados, e estou criando uma aplicação com spring boot, e quando vou criar meu @Entity, o spring pede um @Id pra eu poder executar, porém quando vou salvar um novo valor no banco, ele da erro porque ele fala que a PK já existe, e realmente já existe, porém a minha duvida é a seguinte, é possivel eu criar um @Entity sem anotação @Id?
ou usar o @Id e deixar o banco de dados inserir esse id automaticamente?

Não é possível.
Qual o banco? Qual a estratégia para geração do Id que está usando? Como está o código?

estou usando postgres, ela e um auto increment apenas, quando eu insiro um valor no banco, insere um novo valor na coluna tambem. meu entity esta da seguinte forma:

package br.com.technicalAssistance.model;

import java.sql.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name=“tbl_estoque”)
public class Stock {

@Id
private int idEstoque;
@Column(name="id_produto")
private int idProduto;
@Column(name="nm_produto")
private String nmProduto;
@Column(name="dt_entrada_produto")
private Date dtEntradaProduto;
@Column(name="qtd_produto")
private int qtdProduto;
@Column(name="dc_produto")
private String descricaoProduto;

public Stock(int idEstoque, String nmProduto, Date dtEntradaProduto, int qtdProduto, String descricaoProduto,
		int idProduto) {
	this.idEstoque = idEstoque;
	this.idProduto = idProduto;
	this.nmProduto = nmProduto;
	this.dtEntradaProduto = dtEntradaProduto;
	this.qtdProduto = qtdProduto;
	this.descricaoProduto = descricaoProduto;
}

public Stock(String nmProduto, Date dtEntradaProduto, int qtdProduto, String descricaoProduto) {
	this.nmProduto = nmProduto;
	this.dtEntradaProduto = dtEntradaProduto;
	this.qtdProduto = qtdProduto;
	this.descricaoProduto = descricaoProduto;
}

public Stock(String nmProduto, Date dtEntradaProduto, int qtdProduto, String descricaoProduto, int idProduto) {
	this.idProduto = idProduto;
	this.nmProduto = nmProduto;
	this.dtEntradaProduto = dtEntradaProduto;
	this.qtdProduto = qtdProduto;
	this.descricaoProduto = descricaoProduto;
}

public Stock() {

}

public int getIdEstoque() {
	return idEstoque;
}

public void setIdEstoque(int idEstoque) {
	this.idEstoque = idEstoque;
}

public int getIdProduto() {
	return idProduto;
}

public void setIdProduto(int idProduto) {
	this.idProduto = idProduto;
}

public String getNmProduto() {
	return nmProduto;
}

public void setNmProduto(String nmProduto) {
	this.nmProduto = nmProduto;
}

public Date getDtEntradaProduto() {
	return dtEntradaProduto;
}

public void setDtEntradaProduto(Date dtEntradaProduto) {
	this.dtEntradaProduto = dtEntradaProduto;
}

public int getQtdProduto() {
	return qtdProduto;
}

public void setQtdProduto(int qtdProduto) {
	this.qtdProduto = qtdProduto;
}

public String getDescricaoProduto() {
	return descricaoProduto;
}

public void setDescricaoProduto(String descricaoProduto) {
	this.descricaoProduto = descricaoProduto;
}

}

Postgres, preferencialmente, usa sequence.
Você pode alterar a tua definição de Id para algo assim

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequenceGeneratorForThisId")
@SequenceGenerator(name = "sequenceGeneratorForThisId", sequenceName = "SEQUENCE_FOR_THIS_TABLE", initialValue = 1, allocationSize = 1)
private Integer idEstoque; / Eu sempre prefiro Long e sempre prefiro objetos ao invés de primitivos.

O initialValue pode ser o último valor que você tem no banco e acrescentar 1, exemplo, se o maior id que você tem atualmente é 3045, você coloca initialValue = 3046
Dá uma pesquisada nisso, tem muito detalhe e não vai caber aqui.

vou dar uma olhada aqui, obrigado pela resposta