I am using SpringDataJpa. Let's say I have an entity called USER
(with properties first, last and level). Which annotation should I use on the level property, so it's only populated when querying, but not ignored during saving the object to database?
I have tried @Transient
, but then the field is ignored when querying...
Asked
Active
Viewed 148 times
0

Mathias Dpunkt
- 11,594
- 4
- 45
- 70

topcan5
- 1,511
- 8
- 30
- 54
-
It would help if you provide your entity code. So we know how your mapping currently is set up. – Mathias Dpunkt Nov 11 '15 at 20:58
1 Answers
1
I would try the following.
First make sure that you use JPA Field Access - so your JPA provider is not relying on getters and setters. If your @Id
annotation is set on the field and not the getter you should be fine. See the accepted answer of this question for more details on the JPA access type:
What is the purpose of AccessType.FIELD, AccessType.PROPERTY and @Access
Additionally you do not provide a setter for your level
property. So the field can just be read by the caller.
Further more you can express that the field cannot be written using the @Column
annotation on the level property.
@Column(name = "LEVEL", updatable = false, insertable = false)

Community
- 1
- 1

Mathias Dpunkt
- 11,594
- 4
- 45
- 70