2 Replies Latest reply on Sep 8, 2005 2:40 PM by Mike Slyter

    Composite Key Question

    Mike Slyter Newbie

      I have a table that has a composite key. One value is from the table and one is a foreign key in another table.

      Here is the class that I am trying to anotate:

      /***********************************************************************
       * Module: ActionStatus.java
       * Author: mslyter
       * Purpose: Defines the Class ActionStatus
       ***********************************************************************/
      package gov.utah.laborcommission.safety.entities;
      
      import java.io.Serializable;
      import javax.persistence.*;
      
      @Entity(access = AccessType.FIELD)
      @Table(name = "ACTION_STATUS")
      public class ActionStatus implements Serializable{
       private SystemType systemType;
       private String actionStatus;
       private String actionStatusDesc;
       private String activeIndicator;
      
       @ManyToOne
       @JoinColumn(name="systemType", insertable=false, updatable=false)
       public SystemType getSystemType() {
       return systemType;
       }
       public void setSystemType(SystemType systemType) {
       this.systemType = systemType;
       }
       @Id(generate = GeneratorType.NONE)
       @Column(name="Action_Status")
       public String getActionStatus() {
       return actionStatus;
       }
       public void setActionStatus(String actionStatus) {
       this.actionStatus = actionStatus;
       }
       @Column(name="Action_Status_Desc")
       public String getActionStatusDesc() {
       return actionStatusDesc;
       }
       public void setActionStatusDesc(String actionStatusDesc) {
       this.actionStatusDesc = actionStatusDesc;
       }
       @Column(name="Active_Indicator")
       public String getActiveIndicator() {
       return activeIndicator;
       }
       public void setActiveIndicator(String activeIndicator) {
       this.activeIndicator = activeIndicator;
       }
      
      }


      The class contains the field that the foreign/primary key is in:

      /***********************************************************************
       * Module: SystemType.java
       * Author: mslyter
       * Purpose: Defines the Class SystemType
       ***********************************************************************/
      package gov.utah.laborcommission.safety.entities;
      
      import java.io.Serializable;
      import javax.persistence.*;
      
      import java.util.*;
      
      @Entity
      @Table(name = "SYSTEM_TYPE")
      public class SystemType implements Serializable{
       private String systemType;
       private String systemTypeDesc;
       private String activeIndicator;
       private String wpExePath;
       private String documentTemplatePath;
       private String emailTemplatePath;
       private String documentSavePath;
       private LcEntity supportEntityID;
       private LcEntity contactEntityID;
       private Date lastImportFileDate;
       private String importPath;
       private String exportPath;
       private String logFilePath;
       private String wpDdeCommand;
      
       public SystemType(){}
      
       public SystemType(String systemType,
       String systemTypeDesc,
       String activeIndicator,
       String wpExePath,
       String documentTemplatePath,
       String emailTemplatePath,
       String documentSavePath,
       LcEntity supportEntityID,
       LcEntity contactEntityID,
       Date lastImportFileDate,
       String importPath,
       String exportPath,
       String logFilePath,
       String wpDdeCommand) {
      
       this.systemType = systemType;
       this.systemTypeDesc = systemTypeDesc;
       this.activeIndicator = activeIndicator;
       this.wpExePath = wpExePath;
       this.documentTemplatePath = documentTemplatePath;
       this.emailTemplatePath = emailTemplatePath;
       this.documentSavePath = documentSavePath;
       this.supportEntityID = supportEntityID;
       this.contactEntityID = contactEntityID;
       this.lastImportFileDate = lastImportFileDate;
       this.importPath = importPath;
       this.exportPath = exportPath;
       this.logFilePath = logFilePath;
       this.wpDdeCommand = wpDdeCommand;
       }
      
       @Id
       @Column(name="System_Type")
       public String getSystemType() {
       return systemType;
       }
       public void setSystemType(String systemType) {
       this.systemType = systemType;
       }
       @ManyToOne(optional=false)
       @JoinColumn(name="Entity_ID")
       public LcEntity getContactEntityID() {
       return contactEntityID;
       }
       public void setContactEntityID(LcEntity contactEntityID) {
       this.contactEntityID = contactEntityID;
       }
       @ManyToOne(optional=false)
       @JoinColumn(name="Entity_ID")
       public LcEntity getSupportEntityID() {
       return supportEntityID;
       }
       public void setSupportEntityID(LcEntity supportEntityID) {
       this.supportEntityID = supportEntityID;
       }
       @Column(name="Active_Indicator")
       public String getActiveIndicator() {
       return activeIndicator;
       }
       public void setActiveIndicator(String activeIndicator) {
       this.activeIndicator = activeIndicator;
       }
       @Column(name="Document_Save_Path")
       public String getDocumentSavePath() {
       return documentSavePath;
       }
       public void setDocumentSavePath(String documentSavePath) {
       this.documentSavePath = documentSavePath;
       }
       @Column(name="Document_Template_Path")
       public String getDocumentTemplatePath() {
       return documentTemplatePath;
       }
       public void setDocumentTemplatePath(String documentTemplatePath) {
       this.documentTemplatePath = documentTemplatePath;
       }
       @Column(name="Email_Template_Path")
       public String getEmailTemplatePath() {
       return emailTemplatePath;
       }
       public void setEmailTemplatePath(String emailTemplatePath) {
       this.emailTemplatePath = emailTemplatePath;
       }
       @Column(name="Export_Path")
       public String getExportPath() {
       return exportPath;
       }
       public void setExportPath(String exportPath) {
       this.exportPath = exportPath;
       }
       @Column(name="Import_Path")
       public String getImportPath() {
       return importPath;
       }
       public void setImportPath(String importPath) {
       this.importPath = importPath;
       }
       @Column(name="Last_Import_File_Date")
       public Date getLastImportFileDate() {
       return lastImportFileDate;
       }
       public void setLastImportFileDate(Date lastImportFileDate) {
       this.lastImportFileDate = lastImportFileDate;
       }
       @Column(name="Log_File_Path")
       public String getLogFilePath() {
       return logFilePath;
       }
       public void setLogFilePath(String logFilePath) {
       this.logFilePath = logFilePath;
       }
       @Column(name="System_Type_Desc")
       public String getSystemTypeDesc() {
       return systemTypeDesc;
       }
       public void setSystemTypeDesc(String systemTypeDesc) {
       this.systemTypeDesc = systemTypeDesc;
       }
       @Column(name="WP_DDE_Command")
       public String getWpDdeCommand() {
       return wpDdeCommand;
       }
       public void setWpDdeCommand(String wpDdeCommand) {
       this.wpDdeCommand = wpDdeCommand;
       }
       @Column(name="WP_Exe_Path")
       public String getWpExePath() {
       return wpExePath;
       }
       public void setWpExePath(String wpExePath) {
       this.wpExePath = wpExePath;
       }
      
      }

      How do I anotate this correctly. I haven't seen an example of anything like this.
      Any Help would be appreciated,

      Mike