【发布时间】:2015-10-07 05:02:09
【问题描述】:
我有两张桌子
类别
活动
表中
Category前五个category_name是主要的 category.according 这五个我必须获取 result.for 例如,如果用户首先给出1作为输入,我需要对category_id进行排序 谁在Category table中有parent_category_id 1。在这个例子中我会 获取category_id 6,7,8,9,10,因为他们有parent_category_id 1。接下来,请参阅
Events table,我也有一个带有名称的字段category_id。我有来自Category和category_id的结果,即 , category_id6,7,8,9,10.我必须从
Events table的category_id获取所有记录 与我们从Category table得到的结果相匹配。
混乱?????????
请看下面我的查询和结果快照
我得到这个结果是因为在我的
Event table中只有与category_id 6 and 7.我的查询正在做他的工作,
SELECT * FROM category c inner join `events` e on e.category_id=c.category_id where c.parent_category_id=1;
问题是我必须将查询与
hibernate集成,并且应该 用json格式回复我的spring restful web service面向客户。如果用户输入参数为
1输出应遵循 json 格式或类似的任何标准格式
Events {
Infotech[
{event_id:1,event_name:java_workshop},{event_id:2,event_name:java_workshop},......
],
Socia[
{event_id:1,event_name:java_workshop},{event_id:2,event_name:java_workshop},...
],......
}
我在春天通过添加 json 库完成了简单的 json 转换 spring restful web 服务。
现在,请保持 json 转换,请帮助我获取 我提到的记录?
到目前为止我的代码
用于休眠映射的事件实体类
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
/**
* The persistent class for the user database table.
*
*/
@Entity
@Table(name = "events")
public class Events implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "event_id")
private int eventId;
@Column(name = "event_name")
private String eventName;
@Column(name = "event_description")
private String eventDescription;
@Column(name = "category_id")
private Integer categoryId;
@Column(name = "is_trending_event")
private Integer isTrendingEvent;
@Column(name = "image_url")
private String imageUrl;
private Integer status;
@Column(name = "created_date")
@Temporal(javax.persistence.TemporalType.DATE)
private Date createdDate;
@Column(name = "last_updated_date")
@Temporal(javax.persistence.TemporalType.DATE)
private Date lastUpdatedDate;
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Date getLastUpdatedDate() {
return lastUpdatedDate;
}
public void setLastUpdatedDate(Date lastUpdatedDate) {
this.lastUpdatedDate = lastUpdatedDate;
}
public int getEventId() {
return eventId;
}
public void setEventId(int eventId) {
this.eventId = eventId;
}
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public String getEventDescription() {
return eventDescription;
}
public void setEventDescription(String eventDescription) {
this.eventDescription = eventDescription;
}
public Integer getCategoryId() {
return categoryId;
}
public void setCategoryId(Integer categoryId) {
this.categoryId = categoryId;
}
public Integer getIsTrendingEvent() {
return isTrendingEvent;
}
public void setIsTrendingEvent(Integer isTrendingEvent) {
this.isTrendingEvent = isTrendingEvent;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
类别实体
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
/**
* The persistent class for the user database table.
*
*/
@Entity
@Table(name = "category")
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "category_id")
private int categoryId;
@Column(name = "category_name")
private String categoryName;
@Column(name = "parent_category_id")
private Integer parentCategoryId;
@Column(name = "created_date")
@Temporal(javax.persistence.TemporalType.DATE)
private Date createdDate;
@Column(name = "last_updated_date")
@Temporal(javax.persistence.TemporalType.DATE)
private Date lastUpdatedDate;
public int getCategoryId() {
return categoryId;
}
public void setCategoryId(int categoryId) {
this.categoryId = categoryId;
}
public String getCategoryName() {
return categoryName;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public Integer getParentCategoryId() {
return parentCategoryId;
}
public void setParentCategoryId(Integer parentCategoryId) {
this.parentCategoryId = parentCategoryId;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Date getLastUpdatedDate() {
return lastUpdatedDate;
}
public void setLastUpdatedDate(Date lastUpdatedDate) {
this.lastUpdatedDate = lastUpdatedDate;
}
}
获取类别方法
public List<Object[]> getCategoryList(int id) throws SQLException, ClassNotFoundException, IOException {
List<Object[]> groupList = null;
try {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("FROM Category c inner join Events e on e.categoryId=c.categoryId where c.parentCategoryId= :id");
query.setParameter("id", id);
groupList = query.list();
} catch (Exception e) {
}
return groupList;
}
我应该如何编写 HQL 查询?并将结果发送回客户端 使用 spring restful web 服务的标准 json 格式?帮帮我吧朋友。
【问题讨论】:
-
现在,只需保持 json 转换,请帮我获取我提到的记录吗?:你能把你的问题简化为核心,让它变得可以回答吗?跨度>
-
事实上,我必须先解决这两个问题,即 json 转换和 HQL .. 如果您知道其中任何一个,请帮助我..
标签: java mysql json spring hibernate