我对 Android 应用程序中 ORMlite 的使用感兴趣。但有一个问题。 第一步是注释你的类,但我需要这样的东西:
@DatabaseField(columnName = "geometry", useGetSet = true)
String JSONgeometry;
@Formula (nativeSQL = "ShapeFromJSONText(JSONgeometry)")
public void set(String JSONgeometry){
this.JSONgeometry = JSONgeometry;
}
@Formula (nativeSQL = "asJSONtext(geometry)")
public String get(){
return JSONgeometry;
}
有没有办法在注释中插入原生SQl函数?有没有办法使用 BasePersister 来解决这个任务?
最佳答案
您能否更具体地说明一下 ShapeFromJSONText
和 asJSONtext
函数的具体用途吗?
从你的方法中我感觉到你想将对象保存在几何字段中。
在模型中创建单独的类:
class Geometry {
@DatabaseField(generatedId = true)
int id;
@DatabaseField
float field1;
@DatabaseField
float field2;
}
在你的父类中这样引用它:
class Shape {
@DatabaseField(foreign = true)
Geometry geometry;
}
当然,如果您不想保存对象而只想保存其 JSON 表示形式,则可以将其保存到 String
字段。
如果您想使用 SQL 函数以某种方式更改保存的对象,您也可以在 Java 中的 getter 和 setter 中执行此操作。
关于java - ORMlite 注释中 native SQL 函数的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19769555/