gpt4 book ai didi

java - 如何用 ORMLite 表示模型中的对象列表字段?

转载 作者:行者123 更新时间:2023-11-30 03:25:12 29 4
gpt4 key购买 nike

我正在尝试使用 ORMLite 来表示对话中的评论,如下所示:

@DatabaseTable(tableName = "comments")
public class Comment implements Parcelable{

@DatabaseField(id = true)
private Long id;
@DatabaseField
private Long conversation_id;
@DatabaseField
private String text;
...

public static class List extends ArrayList<Comment>{
}
}

...和...

@DatabaseTable(tableName = "conversations")
public class Conversation implements Parcelable{

@DatabaseField(id = true)
private Long id;
...
@ForeignCollectionField
private Comment.List comments;
@DatabaseField
private Date created_at;
...
}

我收到这个错误:

Field class for 'comments' must be of class ForeignCollection or Collection

我也在使用 GSON,所以这些模型是从 json 自动填充的。例如:

{
"created_at":"2013-08-12T20:38:11Z",
"id":31,
"comments":[
{
"conversation_id":31,
"id":46,
"text":"IE sucks",
},
{
"conversation_id":31,
"id":47,
"text":"Yes it does",
}
]
}

有没有办法只通过改变描述符来实现这个?
是否有必要修改 Conversation 类以使用 ForeignCollection 作为评论类型或更改 Comment.List 类以扩展 ForeignCollection?我想避免做任何这些,因为我担心它会破坏目前工作正常的 GSON 实现。

最佳答案

在评论类中:

...
@DatabaseField(
foreign = true
)
private Conversation conversation_id;
...

conversation_id 实际上只会存储 Conversation 对象的 id,而不是对象本身。

这里有一个非常好的(如果不知何故未格式化)文档:http://ormlite.com/docs/foreign-object

关于java - 如何用 ORMLite 表示模型中的对象列表字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18343558/

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