gpt4 book ai didi

java - 使用 ORMLite 按持久对象关系上的属性查询持久对象。

转载 作者:行者123 更新时间:2023-12-01 15:28:52 25 4
gpt4 key购买 nike

我刚刚开始阅读有关 ORMLite 的内容,所以我还是一个初学者。据我了解,我可以使用对象的任何持久属性来查询对象。

例如,如果我有以下类(class):

@DatabaseTable
public class Bill {
@DatabaseField String code;
Client client;
List<Item> items;
}

@DatabaseTable
class Client {
@DatabaseField String name;
}

@DatabaseTable
class Item {
@DatabaseField String name;
}

(不确定如何注释 Bill 类中的 clientitems 属性)。

无论如何,这样的查询将帮助我获取具有特定代码号的所有 Bill 对象:

QueryBuilder<Bill, String> queryBuilder = BillDao.queryBuilder();
Where<Bill, String> where = queryBuilder.where();
where.eq(BILL.NAME_CODE, "abc123");
PreparedQuery<Account> preparedQuery = queryBuilder.prepare();

我的问题是:ORMLite 中推荐的方法是什么来编写在我的模型对象的传递关系中具有条件的查询?例如“包含具有特定名称的特定项目的所有账单”?或“所有购买过特定名称商品的客户”?

提前致谢!

最佳答案

读取外来对象字段和 Foreign Collections in ormLite docs .

你们的关系将是:

@DatabaseTable(tableName = "bills")
public class Bill {
public static final String ACCOUNT_ID_FIELD_NAME = "client_id";
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(foreign = true, columnName = ACCOUNT_ID_FIELD_NAME)
private Client client;
@DatabaseField
private String code;
Client client;
List<Item> items;

public Bill(){

}
public Bill(Client client, String code){
this.client = client;
this.code = code;
}

public int getId(){
return this.id;
}
public String getCode(){
return this.code;
}
}

@DatabaseTable(tableName = "clients")
class Client {
public static final String NAME_FIELD_NAME = "name";
public Client() {
// all persisted classes must define a no-arg constructor with at least package visibility
}
public Client(String name) {
this.name = name;
}
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(columnName = NAME_FIELD_NAME, canBeNull = false)
private String name;

public int getId(){
return this.id;
}
public String getName(){
return this.name;
}
}

更多信息可以在code examples中找到.

关于java - 使用 ORMLite 按持久对象关系上的属性查询持久对象。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821155/

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