Tipo Public ou Private

Eu tenho um projeto que estava funcionando normalmente, mas quando copiei o projeto para outra maquina esta dando uma mensagem:

“The Java field for attribute “Codigo” is public”

@Entity
@Table(name="Clientes")
public class Clientes {

	@Id
	@Column (length=5, nullable = false)
	public int Codigo;

	@Column(length = 50)
	public String Descricao;

	@Column(length = 20)
	public String Abreviado;

	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn (name = "CodigoCa")
	public Cas ca;
	
	@OneToMany(mappedBy = "id", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
	private List<ClienteUsuario> usuarios;
	
	@Column(length = 40)
	public String Endereco;

	@Column(length = 40)
	public String Bairro;

	@Column(length = 40)
	public String Cidade;

	@Column(length = 2)
	public String DDD;

	@Column(length = 10)
	public String Fone;

	@Column(length = 2)
	public String Uf;

	@Column(length = 10)
	public String Cep;
	
	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn (name = "CodigoCidade")
	public Cidades cidades;
		
	public int getCodigo() {
		return Codigo;
	}

Como resolver esta mensagem?

Muda para private

Mas porque tenho que muadr para Private, se na outra maquina nao precisa? Qual o motivo desta necessidade?

Possivelmente versão.

Conceitualmente não é correto deixar o id de uma classe como público, pois ai qualquer classe poderia muda-lo.

Na verdade não seria bom deixar nada público.

A única mensagem apresentada é essa? É uma mensagem de erro?

Quando falamos em desenvolvimento, precisamos entender qual é o contexto no qual estamos inseridos e o paradigma é uma parte fundamental nisso.
Se você está programando orientado a objetos, precisa entender seus conceitos e buscar atendê-los. É a partir daí que teu código começa a ganhar em qualidade.
Um dos conceitos que a orientação a objetos carrega é o de encapsulamento. E, como vários outros conceitos, ele é totalmente discutível e cheio de polêmicas, afinal, há diferentes interpretações para seu uso, especialmente quando descemos para o nível da linguagem e da sintaxe de programação.
O modo de implementar o encapsulamento que é mais difundido para o java é o que segue a ideia de: tornar atributos privados e criar métodos assessores para a manipulação deles.
Deste modo, o melhor a se fazer é, realmente, seguir o que o @Mike sugeriu.
Porém, tua pergunta é pertinente:

Seria interessante analisar a mensagem completa que é apresentada e em qual cenário, assim, seria possível entender qual a razão de ter surgido e o melhor caminho para resolver isso.