
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
54 lines
823 B
Plaintext
54 lines
823 B
Plaintext
== 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[]
|