== Why is this an issue?

Once set, the value of a Hibernate ``++@Entity++``'s ``++@Id++`` field/column should never be updated. Therefore, setters for such fields should always be ``++private++``.


=== Noncompliant code example

[source,java]
----
public class Book {

  @Id
  @GeneratedValue
  private int id;

  public void setId(int id) {  // Noncompliant
    this.id = id;
  }
----


=== Compliant solution

[source,java]
----
public class Book {

  @Id
  @GeneratedValue
  private int id;

  private void setId(int id) {
    this.id = id;
  }
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Make this setter "private".


=== Highlighting

* primary: visibility modifier, or method name if ``++protected++``


endif::env-github,rspecator-view[]
