0

GAE と Java を使用して大学向けの Web アプリケーションを作成しています。User と Car の 2 つのエンティティを作成しました。各ユーザーは、1 台以上の車を持つことができます。だから私は車との関係エンティティを作成しましたcar= new Entity("Car",plate.hashCode(), user.getKey());私の問題は、キーで車を検索することです。これどうやってするの?私のコードEntity car= getSingleCar(plate);は常に null を返すためです。これはユーザーの私のコードです:

public static void createOrUpdateCustomer(String name, String surname,
        String phone, String address, String city, String state,
        String zip, String email, String username, String password) {
    Entity customer = getSingleUser(username);
    if (customer == null) {
        customer = new Entity("User", username.hashCode());
        customer.setProperty("name", name);
        customer.setProperty("surname", surname);
        customer.setProperty("phone", phone);
        customer.setProperty("address", address);
        customer.setProperty("city", city);
        customer.setProperty("state", state);
        customer.setProperty("zip", zip);
        customer.setProperty("email", email);
        customer.setProperty("username", username);
        customer.setProperty("password", password);
    } else {
        System.out.println("esiste già");
        if (name != null && !"".equals(name)) {
            customer.setProperty("firstName", name);
        }
        if (surname != null && !"".equals(surname)) {
            customer.setProperty("lastName", surname);
        }
        if (phone != null && !"".equals(phone)) {
            customer.setProperty("phone", phone);
        }
        if (address != null && !"".equals(address)) {
            customer.setProperty("address", address);
        }
        if (city != null && !"".equals(city)) {
            customer.setProperty("city", city);
        }
        if (state != null && !"".equals(state)) {
            customer.setProperty("state", state);
        }
        if (zip != null && !"".equals(zip)) {
            customer.setProperty("zip", zip);
        }
        if (email != null && !"".equals(email)) {
            customer.setProperty("email", email);
        }
        if (username != null && !"".equals(username)) {
            customer.setProperty("username", username);
        }
        if (password != null && !"".equals(password)) {
            customer.setProperty("password", password);
        }
    }
    Util.persistEntity(customer);
}

public static Entity getSingleUser(String username) {
    Key key = KeyFactory.createKey("User", username.hashCode());
    return Util.findEntity(key);
}

public static Iterable<Entity> getUser(String username) {
    Iterable<Entity> entities = Util.listEntities("User", "username", username);
    return entities;
}

public static Iterable<Entity> getUserById(String id) {
    Iterable<Entity> entities = Util.listEntities("User", "ID", id);
    return entities;
}


public static Iterable<Entity> getAllUsers() {
    Iterable<Entity> entities = Util.listEntities("User", null, null);
    return entities;
}

e Car を作成するためのコード:

public static Entity createOrUpdateCar(String username, String plate, String model, String revision, String service, String brand, String motor){
    Entity user= User.getSingleUser(username);
    System.out.println(user.getKey());
    Entity car= getSingleCar(plate);

    if(car==null && user!=null){
        System.out.println("è null");
        car= new Entity("Car",plate.hashCode(), user.getKey());
        car.setProperty("plate", plate);
        car.setProperty("user", username);
        car.setProperty("model", model);
        car.setProperty("revision", revision);
        car.setProperty("service", service);
        car.setProperty("mechanic", null);
        car.setProperty("brand", brand);
        car.setProperty("motor", motor);
        car.setProperty("riparazione", null);
    }else {
        System.out.println("id"+car.getProperty("plate"));
    }
    Util.persistEntity(car);
    return car;
}

public static Entity getSingleCar(String plate) {
    Key key = KeyFactory.createKey("Car", plate.hashCode());
    return Util.findEntity(key);
}

public static Entity getSingleCarByKey(Key key) {
    return Util.findEntity(key);
}

public static Iterable<Entity> getCar(String plate) {
    Iterable<Entity> entities = Util.listEntities("Car", "plate", plate);
    return entities;
}

public static Iterable<Entity> getAllCars() {
    Iterable<Entity> entities = Util.listEntities("Car", null, null);
    return entities;
}
4

1 に答える 1