отображение таблицы «многие ко многим» в hibernate с дополнительными полями в виде списка - классы Java? - PullRequest
0 голосов
/ 08 сентября 2010

Я весьма заинтересован в отображении Hibernate, таком как Order / Product / LineItem, описанное здесь: http://docs.jboss.org/hibernate/stable/core/reference/en/html/example-mappings.html#example-mappings-customerorderproduct

Документация кажется довольно полной, но я немного неясен относительно семантики классов Javaчто бы создать ...

Любые намеки очень ценятся.

Спасибо!

Миша

Ответы [ 2 ]

0 голосов
/ 08 сентября 2010

Используя этот пример, вы получите классы, которые выглядят следующим образом:

import java.util.HashSet;
import java.util.Set;

public class Customer {

    private String name = null;
    private Set<Order> orders = new HashSet<Order>();
    private long id = 0;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Set<Order> getOrders() {
        return orders;
    }

    public void setOrders(Set<Order> orders) {
        this.orders = orders;
    }
}

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Order {
    private long id = 0;
    private Date date = null;
    private Customer customer = null;
    private List<LineItem> lineItems = new ArrayList<LineItem>();

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public List<LineItem> getLineItems() {
        return lineItems;
    }

    public void setLineItems(List<LineItem> lineItems) {
        this.lineItems = lineItems;
    }
}

public class LineItem {
    private int quantity = 0;
    private Product product = null;

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public Product getProduct() {
        return product;
    }

    public void setProduct(Product product) {
        this.product = product;
    }
}

public class Product {
    private long id = 0;
    private String serialNumber = null;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }
}

Если вы создадите таблицы в соответствии со структурой в примере, это должно вас настроить.

0 голосов
/ 08 сентября 2010

Они показывают UML и членов класса на диаграмме.

У Клиента может быть от нуля до многих объектов Заказа (Set).

В ордере есть по крайней мере один-много объектов LineItem. {List).

Запись LineItem соответствует продукту. Таким образом, LineItem имеет ровно один объект Product.

Не уверен, что ваш вопрос?

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