by Guest » 20 Feb 2025, 11:53
Sehen Sie diesen Fehler beim Ausführen dieses Programms, das die Löschung enthält. Ich habe HQL versucht, die Daten zu holen. Dieses Mal funktioniert es gut. Ich weiß nicht, wo das
Problem ist. < /P>
Code: Select all
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Exception in thread "main" org.hibernate.sql.ast.produce.ConversionException: A [url=viewtopic.php?t=11587]problem[/url] occurred in the SQM interpreter : Could not resolve unique-identifier to SqmFrom
at org.hibernate.sql.ast.produce.spi.FromClauseIndex.findResolvedTableGroupByUniqueIdentifier(FromClauseIndex.java:132)
at org.hibernate.sql.ast.produce.spi.FromClauseIndex.resolveTableGroup(FromClauseIndex.java:57)
at org.hibernate.query.sqm.tree.from.SqmFrom.locateMapping(SqmFrom.java:49)
at org.hibernate.sql.ast.produce.spi.FromClauseIndex.findResolvedTableGroup(FromClauseIndex.java:110)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitEntityIdentifierReference(BaseSqmToSqlAstConverter.java:746)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitEntityIdentifierReference(BaseSqmToSqlAstConverter.java:213)
at org.hibernate.query.sqm.tree.expression.domain.SqmEntityIdentifierReferenceSimple.accept(SqmEntityIdentifierReferenceSimple.java:51)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitRelationalPredicate(BaseSqmToSqlAstConverter.java:1774)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitRelationalPredicate(BaseSqmToSqlAstConverter.java:213)
at org.hibernate.query.sqm.tree.predicate.RelationalSqmPredicate.accept(RelationalSqmPredicate.java:72)
at org.hibernate.sql.ast.produce.sqm.spi.SqmDeleteToSqlAstConverterSimple.visitDeleteStatement(SqmDeleteToSqlAstConverterSimple.java:64)
at org.hibernate.sql.ast.produce.sqm.spi.SqmDeleteToSqlAstConverterSimple.interpret(SqmDeleteToSqlAstConverterSimple.java:31)
at org.hibernate.query.sqm.internal.SimpleDeleteQueryPlan.executeUpdate(SimpleDeleteQueryPlan.java:47)
at org.hibernate.query.sqm.internal.QuerySqmImpl.doExecuteUpdate(QuerySqmImpl.java:367)
at org.hibernate.query.internal.AbstractQuery.executeUpdate(AbstractQuery.java:1404)
at com.ankit.hibn8.App.main(App.java:51)
< /code>
app.java
package com.ankit.hibn8;
import java.util.List;
import java.util.Random;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import org.hibernate.query.Query;
import com.ankit.hibn8.AlienDO;
public class App {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Configuration config = new Configuration().configure().addAnnotatedClass(com.ankit.hibn8.AlienDO.class);
SessionFactory sessFactory = config.buildSessionFactory();
Session session = sessFactory.openSession();
Transaction t = session.beginTransaction();
String hql = "delete from AlienDO where alienId = :id";
Query query = session.createQuery(hql);
query.setParameter("id", 381);
int result = query.executeUpdate();
System.out.print(result);
session.flush();
t.commit(); // Commit the transaction
session.close();
sessFactory.close();
}
}
< /code>
aliendo.java:
package com.ankit.hibn8;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="alien_table")
public class AlienDO {
@Id
@Column(name="alien_id")
private int alienId;
@Column(name="alien_name")
private String alienName;
@Column(name="alien_age")
private int alienAge;
public int getAlienId() {
return alienId;
}
public void setAlienId(int alienId) {
this.alienId = alienId;
}
public String getAlienName() {
return alienName;
}
public void setAlienName(String alienName) {
this.alienName = alienName;
}
public int getAlienAge() {
return alienAge;
}
public void setAlienAge(int alienAge) {
this.alienAge = alienAge;
}
@Override
public String toString() {
return "AlienDO [alienId=" + alienId + ", alienName=" + alienName + ", alienAge=" + alienAge + "]";
}
}
< /code>
HiBERNate.cfg.xml:
com.mysql.cj.jdbc.Driver
root
jdbc:mysql://localhost:3306/ankitdatabase
root
org.hibernate.dialect.MySQL8Dialect
true
update
< /code>
pom.xml:
4.0.0
com.ankit
spring-hibn8
0.0.1-SNAPSHOT
jar
hibn8
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test
org.hibernate.orm
hibernate-core
6.0.0.Alpha1
com.mysql
mysql-connector-j
8.0.31
Sehen Sie diesen Fehler beim Ausführen dieses Programms, das die Löschung enthält. Ich habe HQL versucht, die Daten zu holen. Dieses Mal funktioniert es gut. Ich weiß nicht, wo das [url=viewtopic.php?t=11587]Problem[/url] ist. < /P>
[code]INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Exception in thread "main" org.hibernate.sql.ast.produce.ConversionException: A [url=viewtopic.php?t=11587]problem[/url] occurred in the SQM interpreter : Could not resolve unique-identifier to SqmFrom
at org.hibernate.sql.ast.produce.spi.FromClauseIndex.findResolvedTableGroupByUniqueIdentifier(FromClauseIndex.java:132)
at org.hibernate.sql.ast.produce.spi.FromClauseIndex.resolveTableGroup(FromClauseIndex.java:57)
at org.hibernate.query.sqm.tree.from.SqmFrom.locateMapping(SqmFrom.java:49)
at org.hibernate.sql.ast.produce.spi.FromClauseIndex.findResolvedTableGroup(FromClauseIndex.java:110)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitEntityIdentifierReference(BaseSqmToSqlAstConverter.java:746)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitEntityIdentifierReference(BaseSqmToSqlAstConverter.java:213)
at org.hibernate.query.sqm.tree.expression.domain.SqmEntityIdentifierReferenceSimple.accept(SqmEntityIdentifierReferenceSimple.java:51)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitRelationalPredicate(BaseSqmToSqlAstConverter.java:1774)
at org.hibernate.query.sqm.consume.spi.BaseSqmToSqlAstConverter.visitRelationalPredicate(BaseSqmToSqlAstConverter.java:213)
at org.hibernate.query.sqm.tree.predicate.RelationalSqmPredicate.accept(RelationalSqmPredicate.java:72)
at org.hibernate.sql.ast.produce.sqm.spi.SqmDeleteToSqlAstConverterSimple.visitDeleteStatement(SqmDeleteToSqlAstConverterSimple.java:64)
at org.hibernate.sql.ast.produce.sqm.spi.SqmDeleteToSqlAstConverterSimple.interpret(SqmDeleteToSqlAstConverterSimple.java:31)
at org.hibernate.query.sqm.internal.SimpleDeleteQueryPlan.executeUpdate(SimpleDeleteQueryPlan.java:47)
at org.hibernate.query.sqm.internal.QuerySqmImpl.doExecuteUpdate(QuerySqmImpl.java:367)
at org.hibernate.query.internal.AbstractQuery.executeUpdate(AbstractQuery.java:1404)
at com.ankit.hibn8.App.main(App.java:51)
< /code>
app.java
package com.ankit.hibn8;
import java.util.List;
import java.util.Random;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import org.hibernate.query.Query;
import com.ankit.hibn8.AlienDO;
public class App {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Configuration config = new Configuration().configure().addAnnotatedClass(com.ankit.hibn8.AlienDO.class);
SessionFactory sessFactory = config.buildSessionFactory();
Session session = sessFactory.openSession();
Transaction t = session.beginTransaction();
String hql = "delete from AlienDO where alienId = :id";
Query query = session.createQuery(hql);
query.setParameter("id", 381);
int result = query.executeUpdate();
System.out.print(result);
session.flush();
t.commit(); // Commit the transaction
session.close();
sessFactory.close();
}
}
< /code>
aliendo.java:
package com.ankit.hibn8;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="alien_table")
public class AlienDO {
@Id
@Column(name="alien_id")
private int alienId;
@Column(name="alien_name")
private String alienName;
@Column(name="alien_age")
private int alienAge;
public int getAlienId() {
return alienId;
}
public void setAlienId(int alienId) {
this.alienId = alienId;
}
public String getAlienName() {
return alienName;
}
public void setAlienName(String alienName) {
this.alienName = alienName;
}
public int getAlienAge() {
return alienAge;
}
public void setAlienAge(int alienAge) {
this.alienAge = alienAge;
}
@Override
public String toString() {
return "AlienDO [alienId=" + alienId + ", alienName=" + alienName + ", alienAge=" + alienAge + "]";
}
}
< /code>
HiBERNate.cfg.xml:
com.mysql.cj.jdbc.Driver
root
jdbc:mysql://localhost:3306/ankitdatabase
root
org.hibernate.dialect.MySQL8Dialect
true
update
< /code>
pom.xml:
4.0.0
com.ankit
spring-hibn8
0.0.1-SNAPSHOT
jar
hibn8
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test
org.hibernate.orm
hibernate-core
6.0.0.Alpha1
com.mysql
mysql-connector-j
8.0.31
[/code]