java - 使用hibernate和java进行Mysql查询时出错

标签 java mysql hibernate

Mysql查询

sql = new StringBuilder("SELECT * FROM table_name WHERE userId = :userId AND deleteFlag = 0 "
                    + "AND YEAR(NOW()) = YEAR(CreatedDate) ");
            sql.append("ORDER BY Id ");

            query = getSession().createSQLQuery(sql.toString());
            query.addEntity(table_name.class);
            query.setParameter("userId", userId);
Error performing load command: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.scotts.beans.model.User#4127404]
    at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:435) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:233) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:285) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1038) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:630) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.type.EntityType.resolve(EntityType.java:438) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.Loader.doQuery(Loader.java:857) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2542) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.Loader.list(Loader.java:2271) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157) [hibernate-core-3.6.10.Final.jar:3.6.10.Final]
    at com.scotts.dao.impl.UserLawnProfileDAOImplV2.getLawnProfile(UserLawnProfileDAOImplV2.java:189) [classes:]

型号

public class UserProgramRecommendationV2 implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    Integer id;

    @Column(name="UserId")
    private Long userId;
}

检查数据库中所有行是否与模型中定义的行匹配。

最佳答案

问题是

User#4127404

在模型中的某个位置,您有一个类 X,它与具有 id 4127404User 关联。数据库中不存在具有此类 ID 的用户

关于java - 使用hibernate和java进行Mysql查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61161703/

相关文章:

mysql - sql,其中字符串中的数字等于关键字

java - 使用 Hibernate 时出现 ORA-02292

java - 循环大文件时内存不足处理 - Java

java - 从 Java 在 Rserve 中执行库时出错

MySQL 如果一行出现两次只显示一次,但如果它出现 n 次(不能是两次)则显示它的名字 n 次?

mysql - 选择性查询

java - 使用 Hibernate 保存列表更改

java - 使用 Hibernate 工具为数据库中的单个表生成 .hbm 文件

java - 从 TestWatcher 跳过测试

java - 在 Eclipse IDE 中无法将文件从一个驱动器复制到多个驱动器