Hibernate composite key

1. Bean

package locationService.beans;

import java.io.Serializable;

import javax.persistence.*;

@Entity
@Table(name = "entity_to_entity")
public class EntityToEntity implements Serializable {

  private static final long serialVersionUID = 1L;

  @EmbeddedId
  private EntityToEntityPK entityToEntityPk;

  public EntityToEntityPK getEntityToEntityPK() {
	return entityToEntityPk;
  }
  public void setEntityToEntityPK(EntityToEntityPK entityToEntityPk) {
	this.entityToEntityPk = entityToEntityPk;
  }

  @Embeddable
  class EntityToEntityPK implements Serializable {
    private static final long serialVersionUID = 1L;
    private int parentId;
    private int childId;

    public EntityToEntityPK() {}

    public EntityToEntityPK(int parentId, int childId) {
  	  this.parentId = parentId;
  	  this.childId = childId;
    }

  }

}

2. Unit Test

  @Test
  public void testEnityToEntity() {
	 Session session = Config.getSessionFactory().openSession();
	 session.beginTransaction();

	 Query query = session.createSQLQuery("select parent_id from entity_to_entity");

	 @SuppressWarnings("unchecked")
	 List<Object> entities = query.list();
	 assertEquals(entities.get(0), 1);

	 session.getTransaction().commit();
	 session.close();
  }
时间: 2024-10-20 18:30:08

Hibernate composite key的相关文章

composite key

CompositeKey的实现 CompositeKey主键的实现.数据库中的一个表如果是组合主键,那么在使用 NHibernate是会有一点麻烦,不说了,用代码例子说话: 1:准备工作,在Oracle中建立表结构,下面的建表的SQL语句(可以利用Toad For Oracle) CREATE TABLE ROBOT_TRACKING(  LUNGUID     VARCHAR2(9 BYTE)                  NOT NULL,  POS         VARCHAR2(2

Hibernate Foreign Key exception

Exception:A Foreign key refering Province from City has the wrong number of column. should be 2 发生错误的类 City: @Entity @Table(name = "CITY") @SuppressWarnings("serial") public class City implements ICity,Serializable{ @EmbeddedId private

composite key 与hashcode,equals

1.hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的:在 Java 应用程序执行期间,在对同一对      象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改. 2.如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同:equals(Object) 方法是指

5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法

1. 持久化实体 Serializable save(Object obj) : 将obj对象变为持久化状态,该对象的属性将被保存到数据库. void persist(Object obj) : 将obj对象转化为持久化状态,该对象的属性将被保存到数据库. Serializable save(Object obj,Object pk)  : 将obj对象保存到数据库,保存到数据库时,指定主键值. void persist(Object obj,Object pk) : 将obj对象转化为持久化状

hibernate的component使用

hibernate的Component,即组件,表示2个类之间的关系,即其中1个类可以作为另一个类的组件来使用. 1.先来看下annotation中关于component的API 2.2.2.3. 嵌入式对象(又名组件) 在实体中可以定义一个嵌入式组件(embedded component), 甚至覆盖该实体中原有的列映射. 组件类必须在类一级定义@Embeddable注解. 在特定的实体的关联属性上使用@Embedded和@AttributeOverride注解可以覆盖该属性对应的嵌入式对象的

Hibernate的dtd文件和properties文件

hibernate-configuration-3.0.dtd 1 <!-- Hibernate file-based configuration document. 2 3 <!DOCTYPE hibernate-configuration PUBLIC 4 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 5 "http://www.hibernate.org/dtd/hibernate-configurat

Cassandra Primary Key讲解

在抽象设计模型时,我们常常需要面对另外一个问题,那就是如何指定各Column Family所使用的各种键.在Cassandra相关的各类文档中,我们常常会遇到以下一系列关键的名词:Partition Key,Clustering Key,Primary Key以及Composite Key.那么它们指的都是什么呢? Primary Key实际上是一个非常通用的概念.在Cassandra中,其表示用来从Cassandra中取得数据的一个或多个列: 1 create table sample ( 2

Create Primary Key using Entity Framework Code First

原文:http://www.codeproject.com/Articles/813912/Create-Primary-Key-using-Entity-Framework-Code-Fir Introduction This article describes the effect of Entity Framework Code First convention and configuration for creating Primary Key column. Entity Framew

Entity Framework Code-First(9.1):DataAnnotations - Key Attribute

DataAnnotations - Key Attribute: Key attribute can be applied to properties of a class. Default Code-First convention creates a primary key column for a property whose name is "Id" or {Class Name} + "Id". Key attribute overrides this d