gpt4 book ai didi

java - Hibernate注解

转载 作者:行者123 更新时间:2023-12-01 16:01:59 26 4
gpt4 key购买 nike

我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com