Updating an entity using reflection does not work? [message #389795] |
Tue, 07 July 2009 13:31  |
Eclipse User |
|
|
|
I have an entity which looks something like this:
@Entity
public class Entity {
@Id
private Long id;
private String field;
// Insert getters and setters here...
}
I try to manipulate it using reflection:
Long id = Long.valueOf(1);
Entity entity = em.find(Entity.class, id);
entity.setField("set directly");
Field[] fields = entity.getClass().getDeclaredFields();
for (Field f : fields) {
if (f.getName().equals("field")) {
f.setAccessible(true);
f.set(entity, "set using reflection");
f.setAccessible(false);
}
}
System.out.println(entity.getField());
This program prints "set using reflection". However, in the database the
value set using reflection does not get updated:
SELECT * FROM ENTITY WHERE ID = 1
ID FIELD
1 set directly
Is it really so that you cannot manipulate entities using reflection? Is
there a way to overcome this?
I'm using EclipseLink 1.1.1.
|
|
|
|
Powered by
FUDForum. Page generated in 0.03655 seconds