2013-02-18 101 views
0

我有这个实体命名产品。有没有办法添加一系列多个键?像序列号的关键字,序列号和模型的关键字,模型的关键字等。您如何做到这一点?非常感谢你。如何在实体上添加一系列密钥? Openjpa

* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package lotmovement.business.entity; 

import java.io.Serializable; 
import java.sql.Timestamp; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Version; 

/** 
* 
* @author god-gavedmework 
*/ 
@Entity 
public class Product implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long product_Id; 

    @Column(name = "SERIAL_NUMBER", nullable = false,length = 30) 
    private String serial_Number; 

    @Column(name = "DATE_ASSEMBLED", nullable = false,length = 10) 
    private String date_Assembled; 

    @Column(name = "TIME_ASSEMBLED", nullable = false,length = 20) 
    private String time_Assembled; 

    @Column(name = "MODEL", nullable = false,length = 20) 
    private String model; 

    @Column(name = "BATCH_ID", nullable = false,length = 6) 
    private int batch_Id; 

    @Column(name = "PROCESS_CODE", nullable = false,length = 3) 
    private int process_Code; 

    @Column(name = "DC_POWER_PCB_SERIAL", nullable = false,length = 20) 
    private String dc_Power_PCB_Serial; 

    @Column(name = "CONTROL_PWER_PCB_SERIAL", nullable = false,length = 20) 
    private String control_Power_PCB_Serial; 

    @Column(name = "MAINS_POWER_PCB_SERIAL", nullable = false,length = 20) 
    private String mains_Power_PCB_Serial; 

    @Column(name = "BLOWER_SERIAL", nullable = false,length = 20) 
    private String blower_Serial; 

    @Column(name = "HEATERPLATE_SERIAL", nullable = false,length = 20) 
    private String heaterPlate_Serial; 

    @Column(name = "LAST_PROCESS", nullable = false,length = 3) 
    private String last_Process; 

    @Column(name = "LAST_DATE", nullable = false,length = 20) 
    private String last_Date; 

    @Version 
    @Column(name = "LAST_UPDATED_TIME") 
    private java.sql.Timestamp updatedTime; 

    public Timestamp getUpdatedTime() { 
     return updatedTime; 
    } 

    public void setUpdatedTime(Timestamp updatedTime) { 
     this.updatedTime = updatedTime; 
    } 


    public Long getProduct_Id() { 
     return product_Id; 
    } 

    public void setProduct_Id(Long product_Id) { 
     this.product_Id = product_Id; 
    } 

    public String getSerial_Number() { 
     return serial_Number; 
    } 

    public void setSerial_Number(String serial_Number) { 
     this.serial_Number = serial_Number; 
    } 

    public String getDate_Assembled() { 
     return date_Assembled; 
    } 

    public void setDate_Assembled(String date_Assembled) { 
     this.date_Assembled = date_Assembled; 
    } 

    public String getTime_Assembled() { 
     return time_Assembled; 
    } 

    public void setTime_Assembled(String time_Assembled) { 
     this.time_Assembled = time_Assembled; 
    } 

    public String getModel() { 
     return model; 
    } 

    public void setModel(String model) { 
     this.model = model; 
    } 

    public int getBatch_Id() { 
     return batch_Id; 
    } 

    public void setBatch_Id(int batch_Id) { 
     this.batch_Id = batch_Id; 
    } 

    public int getProcess_Code() { 
     return process_Code; 
    } 

    public void setProcess_Code(int process_Code) { 
     this.process_Code = process_Code; 
    } 

    public String getDc_Power_PCB_Serial() { 
     return dc_Power_PCB_Serial; 
    } 

    public void setDc_Power_PCB_Serial(String dc_Power_PCB_Serial) { 
     this.dc_Power_PCB_Serial = dc_Power_PCB_Serial; 
    } 

    public String getControl_Power_PCB_Serial() { 
     return control_Power_PCB_Serial; 
    } 

    public void setControl_Power_PCB_Serial(String control_Power_PCB_Serial) { 
     this.control_Power_PCB_Serial = control_Power_PCB_Serial; 
    } 

    public String getMains_Power_PCB_Serial() { 
     return mains_Power_PCB_Serial; 
    } 

    public void setMains_Power_PCB_Serial(String mains_Power_PCB_Serial) { 
     this.mains_Power_PCB_Serial = mains_Power_PCB_Serial; 
    } 

    public String getBlower_Serial() { 
     return blower_Serial; 
    } 

    public void setBlower_Serial(String blower_Serial) { 
     this.blower_Serial = blower_Serial; 
    } 

    public String getHeaterPlate_Serial() { 
     return heaterPlate_Serial; 
    } 

    public void setHeaterPlate_Serial(String heaterPlate_Serial) { 
     this.heaterPlate_Serial = heaterPlate_Serial; 
    } 

    public String getLast_Process() { 
     return last_Process; 
    } 

    public void setLast_Process(String last_Process) { 
     this.last_Process = last_Process; 
    } 

    public String getLast_Date() { 
     return last_Date; 
    } 

    public void setLast_Date(String last_Date) { 
     this.last_Date = last_Date; 
    } 


} 
+0

为什么你想这样做,你认为什么是好处? – Romski 2013-02-19 02:42:21

+0

在DB2数据库中。有一个叫做逻辑文件的东西。它连接到桌子上。在一张表中你可以有许多逻辑文件。对于表格产品,我可以有一个逻辑文件,它有一个模型密钥,另一个我可以有一个序列号的密钥,另一个模型和序列号的密钥。 [link](http://stackoverflow.com/questions/7045254/as-400-db2-logical-file-vs-table-index) – user1917456 2013-02-19 20:19:59

回答

0

我相信你要找的东西根本不正确。密钥应该是实体实例的唯一标识符。在你的例子中,你想要一个“模型”的关键,它听起来不正确。

如果您对“钥匙”有其他要求,请澄清,我们可能会进一步讨论。

+0

我来自DB2数据库,您可以在一个表上拥有多个键。 ..套钥匙。为什么我不被允许?产品中的Serial_Number字段在其业务方面也是独一无二的。你可以查看我对Romski的回答,我也为逻辑文件提供了一个很好的链接。这就像我有一个名为product_id的主键,但我仍然有更多的二级键,如模型等 – user1917456 2013-02-19 20:23:28

+0

对于序列号这可能是合理的,但它显然不是“模型”本身。 afaik,逻辑文件与其他数据库中的“查看”类似。只要使用你的例子,你对“模型”键的“逻辑文件”有什么期待?每个“模型”都会给你多种产品,显然不是“钥匙”。而不是要求“如何有多个关键的实体”这似乎不符合逻辑,你能告诉我们你想达到什么?无需将“serialNumber”作为密钥,无论如何您都可以通过某个serialNumber找到“产品”。 – 2013-02-20 01:14:43

+0

我想要有两个3键的实体。 1.我已经有了product_id。 2.序列号码,因为序列号码也是唯一的,它可以在文本框中找到,所以我需要这个记录来使用find()进行更新。 3.模型,检索大量记录。 (也许我只会使用JPQL)。我仍然对此感到陌生,并且将它与之前的技巧联系在一起。谢谢。 – user1917456 2013-02-20 19:22:33

相关问题