3 Replies Latest reply: Jan 30, 2013 6:03 AM by webyildirim RSS

    how to use subselect annotation to define view entity class

    webyildirim
      Hi experts,
      I want to define a readonly view entity class. Thats why I have written like following class. But according to jars which are used for the project does not contain Subselect and Synchronize annotation class. In order to achieve this issue i tried to change some used jars with newer versioned ones(eg: hibernate-annotations-3.5.2-final.jar) . But occured incompatible exceptions. I'd learn strongly if which compatible jar list includes org.hibernate.annotations.Subselect.class

      Developed in ADF platform and Weblogic 10.3
      Using these hibernate releases:
      hibernate3.jar
      hibernate-annotations-3.4.0.GA.jar
      hibernate-commons-annotations-3.3.0.ga.jar
      hibernate-entitymanager-3.4.0.GA.jar
      hibernate-validator-4.1.0.Final.jar
      and javaee-api-5.0-1.jar
      This composition was enough and useful for me until required of using Subselect annotation class

      Plz help me
      Thanks in advance
      Brgds

      import com.arsivist.structure.BaseEntityView;

      import java.util.ArrayList;
      import java.util.Collection;

      import javax.persistence.Column;
      import javax.persistence.Entity;
      import javax.persistence.Id;
      import javax.persistence.JoinColumn;
      import javax.persistence.ManyToOne;
      import javax.persistence.OneToMany;
      import javax.persistence.Transient;

      import org.hibernate.annotations.Immutable;
      import org.hibernate.annotations.Subselect;


      @Entity(name = "IntegrationDepartment")
      @Immutable
      @Subselect("SELECT * FROM DEPARTMENTVIEW")
      public class IntegrationDepartment extends BaseEntityView
      {
      private IntegrationDepartment dependentDepartment;
      private String code;
      private String name;
      private int departmentLevel;
      private boolean excludeDistribution;

      private Collection<IntegrationDepartment> departmentList;

      public IntegrationDepartment()
      {
      entityName = "IntegrationDepartment";
      departmentList = new ArrayList<IntegrationDepartment>();
      }

      public IntegrationDepartment(int id, String code)
      {
      entityName = "IntegrationDepartment";
      departmentList = new ArrayList<IntegrationDepartment>();

      this.id = id;
      this.code = code;
      }

      @Id
      @Column(name = "ID")
      public int getId()
      {
      return id;
      }

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

      public void setDependentDepartment(IntegrationDepartment dependentDepartment)
      {
      this.dependentDepartment = dependentDepartment;
      }

      @ManyToOne(targetEntity = com.roketsan.integrationmodel.entity.IntegrationDepartment.class)
      @JoinColumn(name = "DEPENDENTDEPARTMENTID")
      public IntegrationDepartment getDependentDepartment()
      {
      return dependentDepartment;
      }

      public void setCode(String code)
      {
      this.code = code;
      }

      @Column(name = "CODE")
      public String getCode()
      {
      return code;
      }

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

      @Column(name = "NAME")
      public String getName()
      {
      return name;
      }

      public void setDepartmentLevel(int departmentLevel)
      {
      this.departmentLevel = departmentLevel;
      }

      @Column(name = "DEPARTMENTLEVEL")
      public int getDepartmentLevel()
      {
      return departmentLevel;
      }

      public void setDepartmentList(Collection<IntegrationDepartment> departmentList)
      {
      this.departmentList = departmentList;
      }

      @OneToMany(mappedBy = "dependentDepartment")
      @JoinColumn(name = "DEPENDENTDEPARTMENTID")
      public Collection<IntegrationDepartment> getDepartmentList()
      {
      return departmentList;
      }

      public void setExcludeDistribution(boolean excludeDistribution)
      {
      this.excludeDistribution = excludeDistribution;
      }

      @Column(name = "EXCLUDEDISTRIBUTION")
      public boolean isExcludeDistribution()
      {
      return excludeDistribution;
      }

      @Override
      @Transient
      public int compareTo(Object object)
      {
      if (!(object instanceof BaseEntityView))
      throw new ClassCastException();

      IntegrationDepartment baseEntity = (IntegrationDepartment)object;
      Integer comparableElementA = getDepartmentLevel();
      Integer comparableElementB = baseEntity.getDepartmentLevel();

      return comparableElementA.compareTo(comparableElementB);
      }

      public String toString()
      {
      return "" + getCode();
      }
      }

      Edited by: webyildirim on Jan 30, 2013 3:49 AM

      Edited by: webyildirim on Jan 30, 2013 3:54 AM