java - Hibernate注解

标签 java hibernate orm hibernate-criteria

我在 MySQL 中创建了一个表:

“object_label”,包含“id”和“name”列。 我已将值插入到该表中。

在java中我创建了新类-'ObjectLabel':

import javax.persistence.*;

 @Entity
    @Table(name = "object_label")
    public class ObjectLabel  implements Serializable {

        private static final long serialVersionUID = 3475812350796110403L;
        private String name;

        public Long getId() { return id; }

        @Id 
        @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(precision = 10, unique = true, nullable = false, updatable = false)
    public Long getId() {
        return id;
    }

    public void setId( Long id ) {
        this.id = id;
    }

        /**
         * @return the name
         */
        public String getName() {
            return name;
        }
        /**
         * @param name the name to set
         */
        public void setName(String name) {
            this.name = name;
        }


    }

在hibernate.cfg.xml中定义:

<mapping class="com.myCompany.model.ObjectLabel" />

我想从表中获取值, 我定义了服务:

@SuppressWarnings( "unchecked" )
    @Transactional( readOnly = true, propagation = Propagation.SUPPORTS )
    public Collection<T> findAll() {
        Session session = getSessionFactory().getCurrentSession();

        return 
            session.createCriteria( persistentClass 
                    ).setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY
                            ).list();
    }

我得到空列表。

在数据库中'select * from 'object_label''返回值)

我的代码有什么问题吗?

谢谢!

最佳答案

我不知道什么persistentClass在您的代码中,但有一个用于检索 ObjectLabel 的条件查询所有记录的实例如下所示:

List results = session.createCriteria(ObjectLabel.class).list();

不确定您为什么使用Criteria.DISTINCT_ROOT_ENTITY因为您没有进行任何投影。

要准确了解发生了什么,我建议激活 SQL 语句的日志记录(使用 nkr1pt 建议的 hibernate.show_sql 属性或通过 org.hibernate.SQL 日志记录类别)。来自 Hibernate 文档:

3.5 Logging

...

When developing applications with Hibernate, you should almost always work with debug enabled for the category org.hibernate.SQL, or, alternatively, the property hibernate.show_sql enabled.

关于java - Hibernate注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626847/

相关文章:

mysql - 查询 SQL + HDF5 混合体

java - 无法解析符号 "FirebaseInstanceId"

java - 所有信任 HostnameVerifier 的 HttpURLConnection 都会导致 SSL 错误

java - PSQL异常 : ERROR: operator does not exist: character varying = uuid

java - 如何编写 JpaRepository 方法来搜索在 Set<String> 中存储电话号码的用户

java - Spring Data JPA - 如何将查询结果转换为实体类

python - 针对不同数据库后端的 peewee 数据库的运行时初始化

java - 为什么文件在同一个包中却需要导入?

java - getclass() 与 .class

java - Hibernate - () 之间的限制