У меня есть две таблицы таблица 1 пользователя (идентификатор * (рк) , имя, адрес электронной почты, PWD) таблица 2 твит (tweet_id, сообщение, user_id (Ф.К.) *)Как использовать внутренний запрос соединения в hql?
user_id - это внешний ключ для идентификатора таблицы пользователя. Я хочу присоединиться к этим двум таблицам, используя внутреннее соединение в hql.
Я получаю эту ошибку.
Исключение из потока "main" org.hibernate.hql.ast.QuerySyntaxException: неожиданный токен: на близкой строке 1, столбец 74 [выберите имя_пользователя, сообщение из com.csc.project.user e внутреннее соединение tweet p на p .user_id = e.id где e.user_name =: name] at org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxException.java:31) at org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxException. Java: 24) в org.hibernate.hql.ast.ErrorCounter.throwQueryException (ErrorCounter.java:59) на org.hibernate.hql.ast.QueryTranslatorImpl.parse (QueryTranslatorImpl.java:258) на org.hibernate. hql.ast.QueryTranslatorImpl.doCompile (QueryTranslatorImpl.java:157) at org.hibernate.hql.ast.QueryTran slatorImpl.compile (QueryTranslatorImpl.java:111) на org.hibernate.engine.query.HQLQueryPlan. (HQLQueryPlan.java:77) на org.hibernate.engine.query.HQLQueryPlan. (HQLQueryPlan.java:56) на org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan (QueryPlanCache.java:72) на org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan (AbstractSessionImpl.java:133) в org.hibernate.impl.AbstractSessionImpl.createQuery (AbstractSessionImpl. java: 112) at org.hibernate.impl.SessionImpl.createQuery (SessionImpl.java:1623) at com.csc.project.tweetManager.viewtweet (tweetManager.java:80) at com.csc.project.tweetManager. main (tweetManager.java:103)
это мой hibernate.cfg
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/twitter</property>
<property name="connection.user">root</property>
<property name="connection.password">root</property>
<property name="show_sql">true </property>
<property name="dialet">org.hibernate.dialect.MySQLDialect </property>
<property name="hbm2ddl.auto">update </property>
<mapping resource="registration.hbm.xml" />
<mapping resource="tweet.hbm.xml"/>
</session-factory>
</hibernate-configuration>
reigistration.hbm
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.csc.project.user" table="t1">
<meta attribute="class-description">
This class contains the employee detail.
</meta>
<id name="id" type="int" column="id">
<generator class="increment"/>
</id>
<property name="user_name" column="user_name" type="string"/>
<property name="user_email" column="user_email" type="string"/>
<property name="password" column="password" type="string"/>
<property name="created" type="timestamp" column="created"/>
</class>
</hibernate-mapping>
tweet.hbm
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.csc.project.tweet" table="t2">
<meta attribute="class-description">
This class contains the employee detail.
</meta>
<id name="tweet_id" type="int" column="tweet_id">
<generator class="increment"/>
</id>
<property name="user_id" column="user_id" type="int"/>
<property name="message" column="message" type="string"/>
<!-- <property name="user_email" column="user_email" type="string"/>
<property name="password" column="password" type="string"/> -->
<property name="created" type="timestamp" column="created"/>
</class>
</hibernate-mapping>
показать свои сущности и код, как вы работаете в программе. – Chaitanya
Пожалуйста, добавьте код Java, который вы пробовали, когда у вас есть это исключение. – Chaitanya