Java Play Framework 1.x中模型id的随机8位值

Java Play Framework 1.x中模型id的随机8位值,java,random,playframework,playframework-2.0,Java,Random,Playframework,Playframework 2.0,我想在播放中为型号使用随机8位数字id!1.2.5代替自动增量值,也不创建随机值,由本人将其分配给id。我不知道这是否可能。我真的在谷歌上搜索过,但什么也找不到 下面是答案。 这是我在我的项目中需要的。假设我有一个用户对象,它有两个属性。姓名。创建此对象后,JPA将自动为该对象的id分配一个值 @Entity public class User extends Model{ public String name; public String surname; } 在这里,我的控

我想在
播放中为
型号
使用随机8位数字id!1.2.5
代替
自动增量
值,也不创建
随机值
,由本人将其分配给id。我不知道这是否可能。我真的在谷歌上搜索过,但什么也找不到

下面是答案。 这是我在我的项目中需要的。假设我有一个用户对象,它有两个属性。姓名。创建此对象后,JPA将自动为该对象的id分配一个值

@Entity
public class User extends Model{
    public String name;
    public String surname;
}
在这里,我的控制器中有createUser方法

public static void createUser(String name, String surname){
     User user = new User();
     user.name = name;
     user.surname = surname;
     /* it seems to me that the answer below can be a solution for what i want like that
      * user.id = javaGenereted8digitNumId();
      * But I dont want this. I want it is handled in model class
      * and I guess it can be with JPA GenericModel. am I right?
      */

     user.save();

}
使用:

如果要包含左侧的0,请使用:

import java.text.DecimalFormat;
在您的代码中:

DecimalFormat fmt = new DecimalFormat("00000000");
int ID = Integer.parseInt(fmt.format((int) (Math.Random()*(99999999-a)+a)));
编辑: 这是对您的问题更新的更新

如果希望用户的模型类每次都创建自己唯一的8位ID,我建议您创建一个静态变量,为创建的所有用户对象保存最近使用的ID。这样在创建新用户时,只需使用下一个可用ID创建一个新用户,这当然将限于99999999 ID。 如果您想更进一步,则需要创建一个非常大的静态字符串,其中包含由空格分隔的所有已用ID,并且每次您要添加用户时,它都会使用.contains(“ID”)方法检查ID的可用性

下面是一个示例,我相信您的用户类应该是什么样子:

public class User extends Model
{
    public String name, surname;
    public int ID;
    public static int lastID;
    public static String usedIDs;

    public User(String name, String surname) //regular User objects
    {
        this.name = name;
        this.surname = surname;
        ID = ++lastID;
        usedID's += ID + " ";
    }

    public User(String name, String surname, int n) //first User object created
    {
        this.name = name;
        this.surname = surname;
        ID = 1;
        lastID = 1;
        usedID's = ID + " ";
    }

//rest of your methods

谢谢你的回答。什么是a?它是保存对象的id吗?a是您的起始id号。如果您希望ID从0开始,那么a=0,例如,如果您希望ID从10000000开始,那么只需更改a的值。然后每次保存模型对象之前,我都应该将此泛型ID设置为模型ID?我不明白您在问什么。您是否可以澄清或发布一个新问题,其中涉及您希望如何处理生成的ID
public class User extends Model
{
    public String name, surname;
    public int ID;
    public static int lastID;
    public static String usedIDs;

    public User(String name, String surname) //regular User objects
    {
        this.name = name;
        this.surname = surname;
        ID = ++lastID;
        usedID's += ID + " ";
    }

    public User(String name, String surname, int n) //first User object created
    {
        this.name = name;
        this.surname = surname;
        ID = 1;
        lastID = 1;
        usedID's = ID + " ";
    }

//rest of your methods