gpt4 book ai didi

java - Android room SELECT * WHERE 返回所有记录

转载 作者:行者123 更新时间:2023-12-04 23:51:15 25 4
gpt4 key购买 nike

我有一个 Android Room 数据库设置,并遵循了一些教程,我正在尝试扩展我所做的内容。我收到了一些查询,但是当我尝试使用 SELECT * WHERE 时查询它返回表中的所有记录,而不仅仅是具有预期 ID 的记录。

DAO 中的查询

@Query("SELECT * FROM weapon_table WHERE fighter_id = :fighter_id" )
LiveData<List<Weapon>> getFighterWeapons(long fighter_id);

记录对象
@Entity(tableName = "weapon_table",
foreignKeys = {
@ForeignKey(entity = com.Database.Fighter.class,
parentColumns = "fighter_id",
childColumns = "fighter_id"),
})
public class Weapon
{
@NonNull
String weapon_name;
@NonNull
@PrimaryKey(autoGenerate = true)
long weapon_id;
@NonNull
long fighter_id;


public Weapon(String weapon_name, long fighter_id)
{
this.weapon_name = weapon_name;
this.fighter_id = fighter_id;
}

public long getWeapon_id()
{
return weapon_id;
}

public void setWeapon_id(long weapon_id)
{
this.weapon_id = weapon_id;
}

public String getWeapon_name()
{
return weapon_name;
}

public void setWeapon_name(String weapon_name)
{
this.weapon_name = weapon_name;
}

public long getFighter_id()
{
return fighter_id;
}

public void setFighter_id(long fighter_id)
{
this.fighter_id = fighter_id;
}
}

当我调用以下代码时,所有记录都会打印到调试控制台,但当前 ID 也会打印出来,并且在所有情况下都保持不变。
   public void onClickAddWeapon(View view)
{
List<Weapon> weapons = mWeaponViewModel.getFighterWeapons(fighter.getFighter_id()).getValue();
for(Weapon weapon: weapons )
{
Log.d("WEAPONDEBUG", "WEAPONNAME/ID: " +weapon.getWeapon_name() +'/'+ weapon.getFighter_id() );
Log.d("WEAPONDEBUG", "FIGHTERID: "+ fighter.getFighter_id() );

}
}

最佳答案

修复相当简单,我遵循了 google code labs tutorial当我尝试扩展它时,我忘记将查询结果实际分配给存储库文件中保存的列表。感谢他们让我朝着正确方向前进的建议。

  LiveData<List<Weapon>> getFighterWeapons(long fighter_id)
{
mWeaponDao.getFighterWeapons(fighter_id);
return mAllWeapons;
}

替换为
LiveData<List<Weapon>> getFighterWeapons(long fighter_id)
{
mAllWeapons = mWeaponDao.getFighterWeapons(fighter_id);
return mAllWeapons;
}

关于java - Android room SELECT * WHERE 返回所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54899064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com