Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Ormlite将字段映射到简单成员类_Java_Android_Ormlite - Fatal编程技术网

Java Ormlite将字段映射到简单成员类

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

我正在试验android版的ORMLite

我有一个预构建的SQLite数据库,正在android设备上加载。我已将位置信息存储为LocationX、LocationY列:

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机制的解决方法是可行的,但是它引入了一个未使用的成员变量,看起来很糟糕,让我觉得我用了一种完全错误的方式来处理它:-/是的,这听起来绝对是一个更好的解决方案。我会试试看;感谢您的快速回复!