Hibernate createQuery调用joincolumn
1. Beans
a. Version Bean
package locationService.beans; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import javax.persistence.*; import org.hibernate.annotations.GenericGenerator; import locationService.beans.Entities; import locationService.beans.Attribute; import locationService.beans.AttributeTag; import locationService.beans.EntityToEntity; import locationService.beans.Tag; @Entity @Table(name = "version") public class Version { private int versionId; private boolean complete; private Timestamp editDate; private String author; private String description; private int preVersionId; private List<Entities> entities = new ArrayList<Entities>(); private List<Attribute> attribute = new ArrayList<Attribute>(); private List<AttributeTag> attributeTag = new ArrayList<AttributeTag>(); private List<EntityToEntity> entityToEntity = new ArrayList<EntityToEntity>(); private List<Tag> tag = new ArrayList<Tag>(); @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") @Column(name="version_id") public int getVersionId() { return versionId; } public void setVersionId(int versionId) { this.versionId = versionId; } @Column(name="complete") public boolean getComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } @Column(name="edit_date") public Timestamp getEditDate() { return editDate; } public void setEditDate(Timestamp editDate) { this.editDate = editDate; } @Column(name="author") public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } @Column(name="description") public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Column(name="pre_version_id") public int getPreVersionId() { return preVersionId; } public void setPreVersionId(int preVersionId) { this.preVersionId = preVersionId; } @OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "version_id", nullable = false) public List<Entities> getEntities() { return entities; } public void setEntities(List<Entities> entities) { this.entities = entities; } @Override public String toString() { return "versionId is " + versionId + ", preVersionId is " + preVersionId + ", author is " + author; } }
b. Entities Bean
package locationService.beans; import javax.persistence.*; import org.hibernate.annotations.GenericGenerator; @Entity @Table(name = "entities") public class Entities { private int entityId; private String label; public enum entityType { location, group; } private entityType locationOrGroup; @Id @Column(name="entity_id") public int getEntityId() { return entityId; } public void setEntityId(int entityId) { this.entityId = entityId; } @Column(name="label") public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } @Column(name="location_or_group") @Enumerated(EnumType.STRING) public entityType getLocationOrGroup() { return locationOrGroup; } public void setLocationOrGroup(entityType locationOrGroup) { this.locationOrGroup = locationOrGroup; } @Override public String toString() { return "entityId is " + entityId + ", label is " + label + ", locationOrGroup is " + locationOrGroup; } }
2. Call Method
/** * Check whether this entities id has been in the version */ public boolean checkEntitiesPK (Version version, int entityId) { Session session = Config.getSessionFactory().openSession(); session.beginTransaction(); int versionId = version.getVersionId(); Query query = session.createQuery("from Entities where entityId = :entityId and version_id = :versionId"); query.setParameter("entityId", entityId); query.setParameter("versionId", versionId); @SuppressWarnings("unchecked") List<Entities> o = query.list(); if (o == null || o.size() == 0){ return false; } return true; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。