2010-09-08 39 views
-1

我在Hibernate映射颇感兴趣,如订单/产品/ LineItem的描述在这里: http://docs.jboss.org/hibernate/stable/core/reference/en/html/example-mappings.html#example-mappings-customerorderproduct休眠多对多表格映射与额外的字段作为列表 - Java类?

文档似乎相当透彻,但我在那一个会创建Java类的语义有点不清楚...

任何提示非常赞赏。

谢谢!

Misha

+0

删除Hibernate标签,因为这实际上是一个UML问题,在这个问题中没有任何hibernate相关。 – 2010-09-08 03:35:16

回答

0

使用这个例子中,你会看起来像下面的类:

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

它们显示图中的UML和类成员。

客户可以拥有零到许多Order对象(Set)。

一个订单至少有一个到多个LineItem对象。 {列表)。

LineItem条目对应于产品。所以LineItem只有一个Product对象。

不确定你的问题是什么?

+0

我只想补充一点,Customer和Order之间的关系是双向的。但是,使用UML比文本更容易:) – 2010-09-08 03:33:27