0
을 사용하는 방법 2.2.1 ebean :playframework 내가 프레임 워크 & ebean 을 재생하려면 새로운 오전 그리고 그래서 난 다음 코드를 사용 내 모델의 인스턴스를 업데이트하는 기능 util을 공통을 원하는 자바 원기 회복 업데이트 엔티티
private static void updateEntity(Class cls, Long id, ObjectNode data){
Object instance = Ebean.find(cls,id);
for (Field field :cls.getFields()){
String fieldName = field.getName();
if (!fieldName.equals("id")){
field.setAccessible(true);
try {
field.set(instance, data.get(fieldName).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
try {
//not work
cls.getMethod("save").invoke(instance);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
//not work too
//Ebean.save(instance);
}
Long id = 1L;
Class cls = MyEntity.class;
ObjectNode data = Json.newObject();
data.put("name","Hello world");
data.put("id",1L);
updateEntity(cls,id,data);
MyEntity 그래서 ID와 이름 , 내가 다음에 어떻게해야합니까 포함 모델의 nomarl 엔티티 클래스입니다 : 내가 사용하여 전화를?
당신은 내 뜻을 이해하지 못합니다. 사용자 클래스, 제품 클래스 등 모든 모델을 동적으로 업데이트하고 싶습니다. 특정 클래스를 사용할 수 없으며, 모델 클래스는 괜찮습니다. 또한 나는 set 메소드에서 키가 있다고 생각하고 객체의 속성을 변경하지만이 함수가 끝난 후에는 데이터베이스의 데이터가 변경되지 않는다 – caogy
자바 리플렉션 메서드는 Ebean ORM에서 작동하지 않을 수도 있습니다. 우리가 데이터베이스의 가치를 바꾸기 위해 모르는 뭔가 – caogy