我正在尝试编写一个函数来使用ebean更新表中的现有行。我实例化一个新的Ebean模型对象,给它现有的ID,添加我要更改的属性,然后向Ebean发送更新请求。但是,更新不会发送到数据库。这可能是什么问题?

EB_Datasource ebds = new EB_Datasource();
ebds.id = 100;
ebds.databaseName = "NewValue";
ebds.update();
System.out.println("test values: " + ebds.databaseName);
ebds.refresh();
System.out.println("test values: " + ebds.databaseName);


打印语句的结果是:

test values: NewValue
test values: OriginalValue


这可能是什么问题?为什么不更新做它的工作?

最佳答案

ebds.id = 100;
ebds.databaseName = "NewValue";


Ebean不支持设置字段。您可能已经看到了使用Play框架的示例,在这些情况下,正是Play框架增强功能将公共字段的get / put变为调用setter / getter方法的方法调用。

因此,在没有Play的Ebean中,您应该使用getter / setter。

ebds.setId(100);
ebds.setDatabaseName("NewValue");
ebds.update();

10-06 16:20