0

我在 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'' 返回值)

我的代码有什么问题?

谢谢!

4

2 回答 2

1

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

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

不知道为什么要使用Criteria.DISTINCT_ROOT_ENTITY,因为您没有进行任何投影。

要查看到底发生了什么,我建议激活 SQL 语句的日志记录(使用hibernate.show_sqlnkr1pt 建议的属性或通过org.hibernate.SQL日志记录类别)。从休眠文档:

3.5 日志记录

...

使用 Hibernate 开发应用程序时,您几乎应该总是使用debugenabled 类别org.hibernate.SQL,或者,属性 hibernate.show_sqlenabled。

于 2010-09-02T14:11:01.097 回答
0

hibernate生成的sql是什么,如果config中的show_sql设置为true,可以在console/log中看到。

另外,使用@Entity(name="...") 而不是@Entity @Table(name="...."),您将JPA 注释与Hibernate 注释混合在一起

于 2010-09-02T12:02:22.293 回答