PO实现hashCode()方法了没有?实现这个方法能够按方法中的字段排序,你试试。
package net.xsbn.stride.model.realm;
import java.util.Set;
import net.xsbn.stride.model.BaseObject;
import org.apache.commons.lang.builder.CompareToBuilder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
/**
* 模块(module)实体设计类.
* @author villion
* @hibernate.class table="usr_module"
*/
public class Module extends BaseObject implements Comparable {
/**
* 模块ID, 主键.
*/
private String id;
/**
* 模块名称.
*/
private String moduleName;
/**
* 模块的默认链接.
*/
private String moduleURL;
/**
* 模块图标.
*/
private String moduleIcon;
/**
* 说明.
*/
private String description;
/**
* 模块顺序.
*/
private int moduleOrder;
/**
* 隐藏模块.
* 默认为false,此模块会进行显示.
*/
private boolean hidden;
/**
* 模块非授权.
* 默认为false,必须进行授权管理.
*/
private boolean nonPermit;
/**
* 父模块.
*/
private Module parent;
/**
* 包含操作员.
*/
private Set operators;
/**
* 所属操作组.
*/
private Set groups;
/**
* 所属目录.
*/
private Catalog catalog;
/**
* 帮助文件地址
*/
private String helpUrl;
/**
* Access method for the id property.
*
* @return the current value of the id property
* @hibernate.id generator-class="uuid.hex" not-null="true"
*/
public String getId() {
return id;
}
/**
* Sets the value of the id property.
*
* @param aId the new value of the id property
*/
public void setId(String aId) {
id = aId;
}
/**
* Access method for the moduleName property.
*
* @return the current value of the moduleName property
* @hibernate.property column="modulename"
*/
public String getModuleName() {
return moduleName;
}
/**
* Sets the value of the moduleName property.
*
* @param aModuleName the new value of the moduleName property
*/
public void setModuleName(String aModuleName) {
moduleName = aModuleName;
}
/**
* Access method for the moduleURL property.
*
* @return the current value of the moduleURL property
* @hibernate.property column = "moduleURL"
*/
public String getModuleURL() {
return moduleURL;
}
/**
* Sets the value of the moduleURL property.
*
* @param aModuleURL the new value of the moduleURL property
*/
public void setModuleURL(String aModuleURL) {
moduleURL = aModuleURL;
}
/**
* Access method for the moduleIcon property.
*
* @return the current value of the moduleIcon property
* @hibernate.property column="moduleicon"
*/
public String getModuleIcon() {
return moduleIcon;
}
/**
* Sets the value of the moduleIcon property.
*
* @param aModuleIcon the new value of the moduleIcon property
*/
public void setModuleIcon(String aModuleIcon) {
moduleIcon = aModuleIcon;
}
/**
* Access method for the description property.
*
* @return the current value of the description property
* @hibernate.property
*/
public String getDescription() {
return description;
}
/**
* Sets the value of the description property.
*
* @param aDescription the new value of the description property
*/
public void setDescription(String aDescription) {
this.description = aDescription;
}
/**
* @return Returns the moduleOrder.
* @hibernate.property column="moduleorder" not-null = "true"
*/
public int getModuleOrder() {
return moduleOrder;
}
/**
* @param moduleOrder The moduleOrder to set.
*/
public void setModuleOrder(int moduleOrder) {
this.moduleOrder = moduleOrder;
}
/**
* @return Returns the hidden.
* @hibernate.property column = "ishidden"
*/
public boolean isHidden() {
return hidden;
}
/**
* @param hidden The hidden to set.
*/
public void setHidden(boolean hidden) {
this.hidden = hidden;
}
/**
* @return Returns the nonPermit.
* @hibernate.property column = "isnonpermit"
*/
public boolean isNonPermit() {
return nonPermit;
}
/**
* @param nonPermit The nonPermit to set.
*/
public void setNonPermit(boolean nonPermit) {
this.nonPermit = nonPermit;
}
/**
* @return Returns the parentId.
* @hibernate.many-to-one column="parentid"
* class="net.xsbn.stride.model.realm.Module"
*/
public Module getParent() {
return parent;
}
/**
* @param parentId The parentId to set.
*/
public void setParent(Module parentId) {
this.parent = parentId;
}
/**
* @return Returns the operators.
* @hibernate.set table="usr_operator_module" lazy="true"
* @hibernate.collection-key column="moduleid"
* @hibernate.collection-many-to-many column="userid"
* class="net.xsbn.stride.model.realm.Operator"
*/
public Set getOperators() {
return operators;
}
/**
* @param operators The operators to set.
*/
public void setOperators(Set operators) {
this.operators = operators;
}
/**
* @return Returns the groups.
* @hibernate.set table="usr_group_module" lazy="true"
* @hibernate.collection-key column="moduleid"
* @hibernate.collection-many-to-many column="groupid"
* class="net.xsbn.stride.model.realm.Group"
*/
public Set getGroups() {
return groups;
}
/**
* @param groups The groups to set.
*/
public void setGroups(Set groups) {
this.groups = groups;
}
/**
* @return Returns the catalog.
* @hibernate.many-to-one column="catalogid"
* class="net.xsbn.stride.model.realm.Catalog"
*/
public Catalog getCatalog() {
return catalog;
}
/**
* @param catalog The catalog to set.
*/
public void setCatalog(Catalog catalog) {
this.catalog = catalog;
}
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append(this.id)
.append(this.moduleName)
.toString();
}
public boolean equals(Object o) {
try {
Module c = (Module) o;
return new EqualsBuilder()
.append(this.id, c.id)
.append(this.moduleName, c.moduleName)
.isEquals();
}
catch(Exception ex) {
//ex.printStackTrace();
return false;
}
}
public int hashCode() {
return new HashCodeBuilder()
.append(this.id)
.append(this.moduleName)
.toHashCode();
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Object o) {
Module m = (Module) o;
return new CompareToBuilder()
.append(this.moduleOrder, m.moduleOrder)
.toComparison();
}
/**
* @return Returns the helpUrl.
* @hibernate.property column="helpurl"
*/
public String getHelpUrl() {
return helpUrl;
}
/**
* @param helpUrl The helpUrl to set.
*/
public void setHelpUrl(String helpUrl) {
this.helpUrl = helpUrl;
}
}
<set
name="operators"
table="usr_operator_module"
lazy="true"
inverse="false"
cascade="none"
sort="unsorted"
>
<key
column="moduleid"
>
</key>
<many-to-many
class="net.xsbn.stride.model.realm.Operator"
column="userid"
outer-join="auto"
/>
</set>
<set
name="groups"
table="usr_group_module"
lazy="true"
inverse="false"
cascade="none"
sort="unsorted"
>
<key
column="moduleid"
>
</key>
<many-to-many
class="net.xsbn.stride.model.realm.Group"
column="groupid"
outer-join="auto"
/>
</set>
分享到:
相关推荐
Hibernate中对表某个字段排序,直接在配置里面实现排序功能。
在使用Hibernate进行数据库操作时,可能会遇到MySQL数据库中文排序不正确的问题。这通常是由于字符集设置、数据库排序规则以及Hibernate的配置等因素导致的。本文将深入探讨如何解决这些问题,确保MySQL数据库中的...
在使用Hibernate进行数据库操作时,经常需要对查询结果进行排序处理。对于简单的查询场景,使用HQL(Hibernate Query Language)即可轻松实现排序功能;但对于复杂的多表关联查询场景,则需要借助Criteria API来灵活...
在Hibernate中,使用`Criteria`进行查询时,可以通过添加排序条件来对结果集进行排序。`Criteria`提供了一个非常灵活的方式来实现这一点。 **示例代码**: ```java Criteria criteria = session.createCriteria...
这是Java常用框架阶段在为学生答疑时做的一个SSH整合分页实例(第一部分),涉及了SSH整合、日期模糊查询、查询条件绑定、查询结果排序等功能,希望能为大家提供一些思路。 分页是绝大多数MIS系统必需的功能之一,...
在Hibernate中,你可以直接在HQL(Hibernate Query Language)或JPA的`@OrderBy`注解中指定排序字段。例如,如果我们要对`User`实体按名字升序排序,可以在实体类上添加注解: ```java @Entity public class User {...
LIST对象排序通用方法HIBERNATE的SET排序.pdf
分析LIST对象排序通用方法HIBERNATE的SET排序.pdf
6. **HQL(Hibernate Query Language)**:类似于SQL,但专为ORM设计,HQL允许开发者以面向对象的方式执行数据库查询,支持复杂的查询操作,如关联查询、分组、排序等。 7. **事务管理**:在数据库操作中,事务的...
- **Query和Criteria**: 分别对应HQL和Criteria API的执行对象,可以添加参数、分页、排序等。 **5. 对象关系映射机制** - **一对一(OneToOne)**: 一个实体类实例对应数据库表的一行记录。 - **一对多(OneToMany...
通过 PostMan 等 RestClient 将待排序的多个数值发给 RestServer,RestServer 对这些数值进行排序,将排序前和排序后的数值存入数据库(可以是MySQL/H2等),并将排序结果返回给 RestClient。如果对 SpringBoot/...
`Hibernate HQL.ppt`则可能深入讲解HQL的使用,包括如何进行条件查询、分组、排序、联接操作等。此外,可能会涉及到Criteria API,这是另一种在Hibernate中进行动态查询的方式,提供了更加面向对象的查询接口。 总...
在高级搜索功能方面,Hibernate Search支持了诸如拼写纠错、音近词搜索等高级特性,这些功能可以让用户即使在输入错误的情况下也能找到他们想要的结果。拼写纠错功能有助于捕获用户的输入错误并提供正确或相近的搜索...
LIST对象排序通用方法HIBERNATE的SET排序[整理].pdf
- **描述**:强制 Hibernate 按照被更新数据的主键为 SQL 更新排序,以减少高并发系统中事务的死锁。 - **取值**:`true` 或 `false`。 - **示例**:`hibernate.order_updates=true` ##### 11. 统计数据生成 ...
等通配符号),多关键字,模糊查询,排序等6,支持Clustering7,支持直接访问Lucene API8,对Lucene索引,API的高效管理Hibernate Search运行的环境如下:1、JDK或JRE 5.0以上2、Hibernate-Search以及相应的依赖包3...
《4.Hibernate查询.doc》和《4.Hibernate查询.ppt》将帮助你理解如何使用HQL进行数据检索、过滤和排序,提高开发效率。 4. **Hibernate入门与进阶** 《Hibernate—Java对象持久化技术-Hibernate入门.ppt》适合...
- **查询缓存**:针对特定查询结果的缓存。 #### 5.2 批量操作 - **批量插入**:使用saveOrUpdate方法一次插入多个对象。 - **批量更新/删除**:使用SQL语句或HQL进行批量操作。 #### 5.3 懒加载与立即加载 - **懒...
2. 查询:使用Query或Criteria API,支持复杂条件、分页、排序等查询,甚至可以执行动态SQL。 3. 支持事务:Hibernate内置了对JTA和JTASessionContext的支持,方便在分布式环境中进行事务管理。 4. 第二级缓存:通过...