This discussion is archived
3 Replies Latest reply: Jan 30, 2013 4:03 AM by webyildirim RSS

how to use subselect annotation to define view entity class

webyildirim Newbie
Currently Being Moderated
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

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points