Распределение заказов с помощью JPA и Play Framework - PullRequest
0 голосов
/ 03 апреля 2012

Я использую игровую среду 1.2.4 и готовлю систему заказа еды. Поэтому я хочу получить их на карте.

package models;

import java.util.ArrayList;
import java.util.Date;
import java.util.Map;

import javax.persistence.Entity;
import javax.persistence.ManyToMany;

import play.db.jpa.Model;

@Entity
public class Order extends Model{


Map<Item, Float> orders;

Table table;
Date date;  

public Order(Map<Item, Float> orders, Table table) {
    super();
    this.orders = orders;
    this.table = table;
    date = new Date();
}

}

Но когда я запускаю приложение, оно выдает эту ошибку,

Ошибка JPA Произошла ошибка JPA (невозможно построить EntityManagerFactory): не удалось определить тип для: java.util.Map, в таблице: порядок, для столбцов: [org.hibernate.mapping.Column (orders)]

Как я могу хранить такие заказы, как пицца на 1 порцию, суп на 1,5 порции и т. Д.

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

Ваша карта должна быть аннотирована, если вы хотите, чтобы она управлялась jpa

@ElementCollection
Map<Item, Float> orders;
1 голос
/ 03 апреля 2012

Добавьте класс Обслуживание с float (количество порций) и Item (вещь, которую подают).Затем добавьте Set в класс Order.Имеет больше смысла, чем карта для такой информации.

1 голос
/ 03 апреля 2012

Вы должны изменить имя таблицы для сущности Order, используя аннотацию @Table. Во многих СУБД «заказ» является зарезервированным словом.

@Entity
@Table(name="apporder")
public class Order extends Model {
    // ...
}

Об элементах заказа: вам нужен другой объект для хранения этих данных. Например:

OrderItem.java

package models;

import java.util.*;
import javax.persistence.*;

import play.db.jpa.*;
import play.data.validation.*;

@Entity
public class OrderItem extends Model {

    @ManyToOne
    public Order order;

    @ManyToOne
    public Item item;

    public Float qty;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...