我可以将用户添加到房间,但用户的编号很容易猜到。我可以轻松添加用户且 ID 号不易被猜到吗?
实体是
@Entity public class EntityUser {
@PrimaryKey(autoGenerate = true)
long userId;
String userName;
}
道是
@Dao
public interface DaoUser {
@Insert
long insert(EntityUser entityUser);
}
数据库是
@Database(entities = {EntityUser.class}, version = 1, exportSchema = false)
public abstract class UserDatabase extends RoomDatabase {
abstract DaoUser daoUser();
}
我用
userDatabase = Room.databaseBuilder(this,UserDatabase.class,"user.sqlite")
.allowMainThreadQueries()
.build();
EntityUser user1 = new EntityUser();
user1.userName = "Pandas";
long user1id = userDatabase.daoUser().insert(user1);
user1.userName = "Ellies";
long user2id = userDatabase.daoUser().insert(user1);
我得到 1 然后 2。
我没有尝试自动生成,但出现了唯一约束错误。
最佳答案
您可以简单地使用 UUID。
@Entity public class EntityUser {
@PrimaryKey(autoGenerate = true)
long userId;
String objectId;
String userName;
}
然后当你生成一个对象时,你可以这样做:
EntityUser user1 = new EntityUser();
user1.userName = "Pandas";
user1.objectId = UUID.randomUUID().toString();
关于java - 如何使用户ID不易被猜到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59585392/