【问题标题】:Kotlin:How to add arraylist into an Entity in data classKotlin:如何将数组列表添加到数据类中的实体中
【发布时间】:2021-12-02 20:44:36
【问题描述】:

我正在尝试制作一个 facebook 克隆应用程序。 从一开始,我就需要定义一个用户类。 我被困在这里,每个用户,都应该有关注者列表和关注者列表。它是如何制作这个模型的? 能否请您看一下我的代码,在此先感谢您!!

@Entity(tableName="user_table")
@Parcelize
data class User(
    @PrimaryKey(autoGenerate = true)
    val userId : Int=0 ,
    val username :String,
    val email :String,
    val password : String,
    var followers: Array<User>?,
    var followings: Array<User>?,


) : Parcelable

data class UserResponse(val user:User?)

另外,我附上了我的 node.js 模型架构:

const mongoose = require('mongoose');

const router = require("express").Router();

const userSchema = new mongoose.Schema({
    username:{
        type:String,
        required : true,
        min:3,
        max:50,
    },

    email:{
        type:String,
        required:true,
        unique:true
    },
    password:{
        type:String,
        required : true,
    },
    profilePicture:{
        type:String,
        default:''
    },
    coverPicture:{
        type : String,
        default:''
    },
    followers:{
        type:Array,
        default :[]
    },
    followings:{
        type:Array,
        default:[]
    },
    isAdmin:{
        type:Boolean,
        default : false
    }

},
{timestamps:true}
);

const User = mongoose.model('User',userSchema);
exports.userSchema = userSchema;
exports.User = User;

【问题讨论】:

  • 你得到什么错误?
  • 嗨罗宾,它没有出现错误,只是出现类似警告的东西,它需要生成哈希码。在我关注它之后,警告被删除了。但是,我不确定我是否有以正确的格式写,我把它贴在这里征求你们的意见。你怎么看?我的代码有问题吗?非常感谢!
  • 我会使用List&lt;User&gt;? 而不是Array&lt;User&gt;?,因为它们更容易使用,我也可能会删除?,因为响应默认为empty list 而不是null在 Kotlin 中没问题,所以 List&lt;User&gt; 就足够了
  • 将网络响应模型与数据库实体分开可能是个好主意。目前这是设置方式,进行与数据库无关的更改将迫使您迁移
  • 非常感谢罗宾的建议!

标签: kotlin


【解决方案1】:

你应该做的第一件事就是改变

var followers: Array<User>?,
var followings: Array<User>?

var followers: Array<Int>?,
var followings: Array<Int>?

Int 可能是您的 userId 的类型或将其设置为 String 通过这样做,您将不会递归地获取整个数据库并循环获取关注者和关注者。

如果您使用Room 来存储您的数据,请添加TypeConverters

【讨论】:

  • 非常感谢兄弟的建议!
猜你喜欢
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
相关资源
最近更新 更多