Я получаю сообщение об ошибке:При условии идентификатора неправильного типа зимует
org.hibernate.TypeMismatchException: При условии, идентификатор неправильного типа для класса BEntity. Ожидаемый: класс BEntity, получил класс AEntity
public class BEntity implements Serializable{
@Id
@Column(name = "NUM")
private String num;
@Id
@Column(name = "INIT")
private String init;
@Column(name = "V_CNT")
private Integer vcnt;
//{{{some column omitted}}}//
}
public class AEntity implements Serializable{
@Id
@Column(name = "NUM")
private String num;
@Id
@Column(name = "INIT")
private String init;
@OneToOne
@PrimaryKeyJoinColumns({
@PrimaryKeyJoinColumn(name="NUM", referencedColumnName="NUM"),
@PrimaryKeyJoinColumn(name="INIT", referencedColumnName="INIT")
})
private BEntity bEntity;
}
HQL запрос:
String queryString = "FROM AEntity AS A " +
"LEFT JOIN A.bEntityAS B " +
"WHERE A.INIT||A.NUM IN (:carList) AND A.INIT IN (:initList) AND A.NUM IN (:numberList) " +
"AND B.TRUK_AXL_CNT > 0";
Hibernate генераторной код
select aentity0_.NUMBER as NUMBER4_0_, aentity0_.INITIAL as INITIAL4_0_, bentity_p1_.NUMBER as NUMBER5_1_, bentity_p1_.INITIAL as INITIAL5_1_, aentity0_.V_CNT as VCNT3_4_0_, aentity0_.EIN as EIN4_0_, aentity0_.TYP as TYP5_4_0_, aentity0_.TRUK_CNT as TRUK6_4_0_, bentity_p1_.TRUK_AXL_CNT as TRUK3_5_1_ from USR.aentity aentity0_ left outer join USR.bentity_PRIMARY bentity_p1_ on aentity0_.NUMBER=bentity_p1_.NUMBER and aentity0_.INITIAL=bentity_p1_.INITIAL
where (aentity0_.INITIAL||aentity0_.NUMBER in (?,?,?))
and (aentity0_.INITIAL in (?,?,?))
and (aentity0_.NUMBER in (?, ?, ?))
and bentity_p1_.TRUK_AXL_CNT>0
Когда я запускаю код SQL Explorer работает на При запуске его в коде возникает проблема ...
Какая версия Hibernate вы используете? Вы используете ядро или JPA? Протестировано здесь с JPA + Hibernate 4.1.3, и все прошло отлично (без ошибок). Вы уверены, что ошибка указана на выбранном или в другой части кода? – Montolide
использовал hibernate 4.1.2 core – JonH