java无法使用相同的模型进行房间和改装
我正在进行一个api调用,响应包括对象列表,json响应是:
[
{
"name": "jay",
"age": 27,
"avatar": "https://avatars.abc/bat_man/",
"friends": [{
"friend_name": "abc",
"friend_age": 23,
"avatar": "https://avatars.abc/thor/"
},
{
"friend_name": "xyz",
"friend_age": 26,
"avatar": "https://avatars.abc/hulk/"
},
{
"friend_name": "pqr",
"friend_age": 28,
"avatar": "https://avatars.abc/iron_man/"
}
]
},
{
"name": "ajay",
"age": 27,
"avatar": "https://avatars.abc/bat_man/",
"friends": [{
"friend_name": "abc",
"friend_age": 23,
"avatar": "https://avatars.abc/thor/"
},
{
"friend_name": "xyz",
"friend_age": 26,
"avatar": "https://avatars.abc/hulk/"
},
{
"friend_name": "pqr",
"friend_age": 28,
"avatar": "https://avatars.abc/iron_man/"
}
]
}
]
我创建了一个没有friends
属性的模型,只要我添加了一个Friend
列表,我就无法使用room,现在我创建的模型可以用于改造,但它不适用于room,因为room不支持实体内的列表对象
我用@TypeConverter
修复了它,但在那之后,改装就停止了。
我正在寻找一种方法,这样我就可以对两者使用相同的模型(api调用+通过room持久化数据)
我试图让模型与ROOM一起工作,但在那之后,我的改型api回调将到达onFailure()
,原因很明显,它没有被解析,我收到的错误是Failed sending reply to debugger: Broken pipe
有没有什么方法可以让我忽略改装呼叫中的某些特定属性,并将同一型号用于这两个目的
我的模特看起来:
@Entity(tableName = "user_table")
public class User {
private String name;
private String href;
private String avatar;
private Friends friend;
public User(String name, String href, String avatar, Friends friend) {
this.name = name;
this.href = href;
this.avatar = avatar;
this.friend = friend;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHref() {
return href;
}
public void setHref(String href) {
this.href = href;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public Friends getFriend() {
return friend;
}
public void setFriend(Friends friend) {
this.friend = friend;
}
}
# 1 楼答案
您可以使用第一种方法,用
@Ignore
注释要在文件室中忽略的字段假设你的刀里有这样的东西
@Dao
然后,您可以按如下方式添加数据
使用这种方法,您必须做一些更改:
Friend
对象的列表,而不是Friends
对象李>