Tabela só com chave primária

Olá, tenho uma tabela no banco que possui somente um campo varchar, e esse é a chave primária (horário no formato hh:mm).
O problema é que ao tentar alterar um horário, ele está mantendo o atual e criando um novo com o novo horário.
Ex.:
Possuo os valores:
05:00
06:00
07:00
Atualizo o valor 05:00 para 05:10.
Ele mantém o atual e adiciona o novo, ficando dessa forma:
05:00
05:10
06:00
07:00

Como posso corrigir isso, sendo que não tenho permissão para fazer alteração no banco caso seja necessário?

package br.com.model;

import java.io.Serializable;

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

@Entity
@Table(name = "horario")
public class Horario implements Serializable {

	private static final long serialVersionUID = 6431234093637625446L;
	@Id
	@Column(name = "hora")
	private String hora;

	public String getHora() {
		return hora;
	}

	public void setHora(String hora) {
		this.hora = hora;
	}
	
}

A alteração eu faço com o método entityManager.merge

Cara, chaves não devem ser alteradas. Isso não é nem padrão JPA ou qualquer outra coisa é básico de banco de dados.

Eu já acho uma péssima prática colocar data como chave, a prova disso, é que no seu código a chave está mapeada como String mesmo o campo sendo hora (traduzido como Date no java).

Sem alterar o banco, não dá.

É. Não vai ter jeito…A galera do banco vai ter que modificar isso e colocar ao menos um id ai…