Java Ormlite将字段映射到简单成员类
我正在试验android版的ORMLite 我有一个预构建的SQLite数据库,正在android设备上加载。我已将位置信息存储为LocationX、LocationY列:Java Ormlite将字段映射到简单成员类,java,android,ormlite,Java,Android,Ormlite,我正在试验android版的ORMLite 我有一个预构建的SQLite数据库,正在android设备上加载。我已将位置信息存储为LocationX、LocationY列: CREATE TABLE graphicsinstances(Name STRING , LocationX FLOAT , LocationY FLOAT , SizeX FLOAT , SizeY FLOAT ); 关键是,在运行时,我希望它看起来像: public class Vector2 { public
CREATE TABLE graphicsinstances(Name STRING , LocationX FLOAT , LocationY FLOAT , SizeX FLOAT , SizeY FLOAT );
关键是,在运行时,我希望它看起来像:
public class Vector2
{
public float X;
public float Y;
}
@DatabaseTable(tableName = "graphicsinstances")
public class graphicsinstance
{
public GraphicalEntityInstance()
{
mName = null;
mPosition = Vector2.zero();
mSize = Vector2.zero();
}
@DatabaseField(columnName = "Name", canBeNull = false)
public String mName;
//Olympic standard optimism
//@DatabaseField(columnName = "Location", canBeNull = false)
//public Vector2 mPosition;
// current (unsatisfactory) method:
@DatabaseField(canBeNull = false, useGetSet=true)
private float LocationX;
public float getLocationX() { return mPosition.X;}
public void setLocationX(float x) { mPosition.X = x;}
// repeat for Y, SizeX & SizeY!
}
我是否错过了一些明显的东西,或者我完全找错了方向?有人能推荐一种替代的/更漂亮的方法吗?如果我理解,您想将一个表映射到一个包含子类的类中。在您的示例中,我猜您希望将LocationX和LocationY字段加载到我猜是矢量2的位置 我认为有一个getMPosition和setMPositionmpos方法可以在LocationX和LocationY字段之间进行映射,但是您无法使用ORMLite自动神奇地进行映射 从纯度的角度来看,我总是建议使用数据库界称之为实体类的东西。这个类准确地反映了您的数据库结构。表中的字段和类之间应该有一对一的对应关系。它可以有hashCode、equals和标准getter/setter等方法,但其他方法很少
您可以创建一个包装对象,该对象在其构造函数中接受GraphicsInstance对象,并执行Vector2映射,并允许其他操作。当您准备好保存它时,您需要返回到GraphicsInstance对象。我不理解这个问题。你对此有问题吗?不编译或运行?您遇到了什么错误?抱歉,我想将LocationX&LocationY列中的数据映射到mPosition实例的X&Y字段。我使用getset机制的解决方法是可行的,但是它引入了一个未使用的成员变量,看起来很糟糕,让我觉得我用了一种完全错误的方式来处理它:-/是的,这听起来绝对是一个更好的解决方案。我会试试看;感谢您的快速回复!