Hibernate's core Object/Relational Mapping functionality (prefer the hibernate-user room/stream on https://hibernate.zulipchat.com)
List<Object[]> results = session.createNativeQuery(str).getResultList().await().indefinitely();
for (Object[] tuple : results ) {
String countryName = tuple[0];
Object countryCode = tuple[1];
}
@DavideD
thank you for your response.
I have another project using JPA- hibernate 5.5. There I can pass the second parameter of createNativeQuery as tuple class instead of giving an entity class. So I thought may be there is a chance to use Tuple in reactive hibernate also. If we use tuple class then we can retrieve the data by using alias name in the query string.
Few reference:
https://stackoverflow.com/questions/44626609/getting-column-names-from-a-jpa-native-query
https://stackoverflow.com/questions/16296853/jpa-result-list-cast-object-to-tuple
Anyway, I will go with object array as you have mentioned.
HibernateTransactionManager
is a Spring class, not a Hibernate class. Not sure why people routinely come ask us about issues using Hibernate via Spring
ClassNotFoundException: javax.xml.bind.JAXBException
. Considering that Hibernate 5.5. supports Jakarta, I would have thought, that it's looking for jakarta.xml.bind.JAXBException
. Not javax. What's going on here?
javax
is still the primary target for versions inclusing 5.6; we switched to jakarta
primarily starting in 6.0. So for 5.5, you'd need to be sure to use the jakarta variant (hibernate-core-jakarta
e.g.)
Hello everyone!
I need your help so much. I've not resolved one problem.... May be i don't understand some kernel's things, but hope - its so easy for nice community:
First of all: i'm using dymanic-map entity mode(i know it is not elegant approach...)
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">
<class entity-name="UserInfo" schema="MDM_DATA" table="UserInfo">
<tuplizer entity-mode="dynamic-map" class="org.hibernate.tuple.entity.DynamicMapEntityTuplizer"/>
<id column="user_id" name="user_id" type="long">
<generator class="identity"/>
</id>
<property column="lastName" name="lastName" type="text"/>
<property column="firstName" name="firstName" type="text"/>
<property name="lastrec" type="int" generated="insert">
<column name="lastrec" default="1" not-null="true"/>
</property>
<property name="recdateend" type="timestamp" generated="insert">
<column name="recdateend" default="CAST('01/01/3000' as timestamp)" not-null="true"/>
</property>
<property name="recdatebegin" type="timestamp" generated="insert">
<column name="recdatebegin" default="current_timestamp" not-null="true"/>
</property>
<property name="recdatenew" type="timestamp" generated="insert">
<column name="recdatenew" default="current_timestamp" not-null="true"/>
</property>
<set lazy="false" inverse="true" cascade="all" name="UserExtraParam">
<key column="user_id"/>
<one-to-many class="UserExtraParam"/>
</set>
</class>
<class entity-name="UserExtraParam" schema="MDM_DATA" table="UserExtraParam">
<tuplizer entity-mode="dynamic-map" class="org.hibernate.tuple.entity.DynamicMapEntityTuplizer"/>
<id column="user_id" name="user_id" type="long">
<generator class="foreign">
<param name="property">UserInfo</param>
</generator>
</id>
<property column="param_value" name="param_value" type="text"/>
<property column="param_key" name="param_key" type="text"/>
<many-to-one name="UserInfo" column="user_id" lazy="proxy" insert="false" update="false" class="UserInfo" not-null="false"/>
</class>
</hibernate-mapping>
And when i want to receive all data by query(something like this):
select ent from UserInfo ent
I get a infinite recursive error (when i suppose hibernate try to get UserExtraParam for UserInfo):
Hibernate: select userinfo0_.user_id as user_id1_1_, userinfo0_.lastName as lastname2_1_, userinfo0_.firstName as firstnam3_1_, userinfo0_.recdatebegin as recdateb4_1_, userinfo0_.recdateend as recdatee5_1_, userinfo0_.recdatenew as recdaten6_1_, userinfo0_.lastrec as lastrec7_1_ from "MDM_DATA".UserInfo userinfo0_
Hibernate: select userextrap0_.user_id as user_id1_0_0_, userextrap0_.user_id as user_id1_0_1_, userextrap0_.param_key as param_ke2_0_1_, userextrap0_.param_value as param_va3_0_1_ from "MDM_DATA".UserExtraParam userextrap0_ where userextrap0_.user_id=?
....
(last query repeat N-over times)