我有一个嵌入密钥的实体.实体只有键作为字段,键有7个字段,其中一些可以为空.
当我运行以下查询时:
Criteria criteria = session.createCriteria(getPersistentClass());
criteria.add(Restrictions.eq("id.profPropertyId", profileExtensionName));
Object obj = criteria.list();
log.info(obj);
return (List<ProfileExtensions>) obj;
Run Code Online (Sandbox Code Playgroud)
我得到了正确的结果数,但每个结果都是null(即我得到4000个空对象的列表).我尝试过使用HQL查询和标准,但它们都给出了相同的结果.
映射类是从现有数据库生成的.
为查询生成的SQL如下所示
select this_.PROF_DATA_TYPE as PROF1_14_0_, this_.PROF_EXT_KEY as PROF2_14_0_,
this_.PROF_KEY as PROF3_14_0_, this_.PROF_NAME as PROF4_14_0_,
this_.PROF_PROPERTY_ID as PROF5_14_0_, this_.PROF_VALUE as PROF6_14_0_,
this_.PROF_VALUE_EXTENDED as PROF7_14_0_
from EMPINST.PROFILE_EXTENSIONS this_
where this_.PROF_PROPERTY_ID=?
Run Code Online (Sandbox Code Playgroud)
看起来它应该返回正确的数据.
映射文件非常简单(并从模式生成:
// Generated Oct 18, 2010 11:08:08 PM by Hibernate Tools 3.2.2.GA
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name="PROFILE_EXTENSIONS"
,schema="EMPINST"
, uniqueConstraints = @UniqueConstraint(columnNames={"PROF_KEY", …Run Code Online (Sandbox Code Playgroud) 我正在使用Hibernate的JPA impl对某些表进行建模。我在映射表时遇到了麻烦:
我试图破解它并将索引定义为复合ID,但是由于某些列可为空,因此无法正常工作。JPA / Hibernate有可能吗?
谢谢