@JsonAutoDetect
解决 该bug: Failed to load resource: the server responded with a status of 406 (Not Acceptable) : The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ()
@org.hibernate.annotations.Proxy(lazy = false)
解决该bug: hibernate load() get() bug ,,session 提前 close 问题
package com.cmcc.cailing.entity; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.Table; import org.codehaus.jackson.annotate.JsonAutoDetect; import org.codehaus.jackson.annotate.JsonIgnore; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; import org.slave4j.orm.hibernate.BaseEntity; @JsonAutoDetect @Entity @Table(name = "t_company") @org.hibernate.annotations.Proxy(lazy = false) public class Company extends BaseEntity implements Serializable { /* `id` int(11) NOT NULL AUTO_INCREMENT, `compName` varchar(50) DEFAULT NULL, `compPhone` varchar(20) DEFAULT NULL, `compEmail` varchar(20) DEFAULT NULL, `compType` int(11) DEFAULT NULL, `bossCompId` varchar(255) DEFAULT NULL, `parentId` int(11) NOT NULL, `orgCode` varchar(100) DEFAULT NULL, `openType` int(11) DEFAULT NULL,*/ private static final long serialVersionUID = -5589729937828659285L; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") private int id; @Column(name = "compname") private String compName; @Column(name = "compphone") private String compPhone; @Column(name = "compemail") private String compEmail; @Column(name = "comptype") private int compType; @Column(name = "bosscompid") private String bossCompId; @ManyToOne(cascade = CascadeType. REFRESH, targetEntity = Company.class , fetch = FetchType.EAGER,optional = false) @JoinColumn(name = "parentid", unique = true, nullable = false, updatable = false ,insertable = true ) @NotFound(action=NotFoundAction.IGNORE) @JsonIgnore @Cascade(value = { org.hibernate.annotations.CascadeType.SAVE_UPDATE }) private Company parentCompany; @Column(name = "opentype") private int openType; @Column(name = "orgcode") private String orgCode; @OneToMany(cascade = CascadeType. REFRESH, mappedBy = "parentCompany", fetch = FetchType.EAGER) @NotFound(action=NotFoundAction.IGNORE) @OrderBy("id") private List<Company> childCompany = new ArrayList<Company>(); public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCompName() { return compName; } public void setCompName(String compName) { this.compName = compName; } public String getCompPhone() { return compPhone; } public void setCompPhone(String compPhone) { this.compPhone = compPhone; } public String getCompEmail() { return compEmail; } public void setCompEmail(String compEmail) { this.compEmail = compEmail; } public int getCompType() { return compType; } public void setCompType(int compType) { this.compType = compType; } public String getBossCompId() { return bossCompId; } public void setBossCompId(String bossCompId) { this.bossCompId = bossCompId; } public Company getParentCompany() { return parentCompany; } public void setParentCompany(Company parentCompany) { this.parentCompany = parentCompany; } public int getOpenType() { return openType; } public void setOpenType(int openType) { this.openType = openType; } public String getOrgCode() { return orgCode; } public void setOrgCode(String orgCode) { this.orgCode = orgCode; } public List<Company> getChildCompany() { return childCompany; } public void setChildCompany(List<Company> childCompany) { this.childCompany = childCompany; } @Override public String toString() { return "Company [id=" + id + ", compName=" + compName + ", compPhone=" + compPhone + ", compEmail=" + compEmail + ", compType=" + compType + ", bossCompId=" + bossCompId + ", parentCompany=" + (parentCompany != null?parentCompany.toString():null ) + ", openType=" + openType + ", orgCode=" + orgCode // + ", childCompany=" + (childCompany.size() > 0 ? childCompany.toString() : null) +"]"; } }
非级联删除 , 级联查询
package com.cmcc.cailing.service; import java.util.List; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cmcc.cailing.entity.Company; public class CompanyServiceTest { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "classpath*:applicationContext*.xml" }); CompanyService companyService = (CompanyService) context.getBean("companyService"); System.out.println(companyService); Company find2 = companyService.getCompanyById(2); System.out.println("------------------"); System.out.println(find2.toString()); List<Company> list = find2.getChildCompany(); System.out.println(list.toString() ); System.out.println("------------------"); Company find3 = companyService.find("id", 2); System.out.println(find3); System.out.println("------------------"); Company find = companyService.find(1); System.out.println(find.toString()); /* `id` int(11) NOT NULL AUTO_INCREMENT, `compName` varchar(50) DEFAULT NULL, `compPhone` varchar(20) DEFAULT NULL, `compEmail` varchar(20) DEFAULT NULL, `compType` int(11) DEFAULT NULL, `bossCompId` varchar(255) DEFAULT NULL, `parentId` int(11) NOT NULL, `orgCode` varchar(100) DEFAULT NULL, `openType` int(11) DEFAULT NULL,*/ Company entity = new Company(); entity.setCompName("renjiliankaidegognsi"); entity.setCompPhone("15011112222"); entity.setCompEmail("renhjilian@163.com"); entity.setCompType(0); entity.setBossCompId(5+""); Company company2 = companyService.getCompanyById(2); entity.setParentCompany( company2); entity.setOrgCode("1231232"); entity.setOpenType(0); System.out.println("============================ save "); companyService.save(entity ); System.out.println("============================ save end ,start find "); Company company23 = companyService.getCompanyById(entity.getId()); System.out.println(company23.toString()); System.out.println("============================ find end, update start "); company23.setCompName("12121212 renjilian "); companyService.update(company23); System.out.println("============================ update end , delete start "); // companyService.delete(entity); companyService.delete(entity.getId()); System.out.println("============================ delete end "); } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
4. **级联查询示例**:例如,一个用户可以有多个订单,当删除用户时,如果设置了级联删除,那么相关的订单也会被一起删除。 5. **级联操作的优缺点**:优点是简化了代码,提高了开发效率;缺点是如果不合理使用,...
本文将深入探讨如何在Hibernate中处理Many-to-Many关系的级联保存、级联更新和级联删除。 一、Many-to-Many关系基础 在数据库设计中,Many-to-Many关系意味着两个实体之间存在多对多的关系。例如,学生可以选修多门...
2. 级联删除(Cascade Type.REMOVE) 当设置为`CascadeType.REMOVE`时,如果删除了父实体,与之关联的子实体也会被删除。这在处理一对多或者多对多关系时非常有用,可以确保相关的数据在数据库中得到一致性的清理。...
HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,它支持多种连接查询类型,如内连接、迫切内连接、隐式内连接、左外连接、迫切左外连接、右外连接和交叉连接,提供了与SQL类似的查询功能。...
在Java编程中,级联查询和分页查询是数据库操作中的常见需求,特别是在处理大量数据时。级联查询用于获取一个实体的相关实体信息,而分页查询则用于提高查询效率和用户体验,避免一次性加载过多数据导致性能下降。...
在处理一对多或多对一关系时,我们可能会遇到级联操作的需求,比如当删除一个父实体时,希望同时删除所有关联的子实体。这可以通过`CascadeType`实现: ```java @OneToMany(cascade = CascadeType.ALL) private ...
这些类通常会包含一些基本属性如ID、名称等,并通过Hibernate的注解与数据库表建立关联。 接下来是`UserAction.java`,这通常是Struts2框架中的一个Action类,负责接收用户的请求并调用相应的业务逻辑。在这个案例...
在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...
在这个"struts2 hibernate 实现无限级联 树形分类"项目中,主要目标是创建一个能够展示无限级联的树形分类结构。这种结构通常用于组织层次化的数据,如产品类别、部门结构或者权限角色等。无限级联意味着这个树可以...
在Java持久化框架Hibernate中,级联操作是处理对象关系映射(ORM)时非常重要的一个特性。级联操作允许我们在对一个实体进行操作时,自动地影响与之相关的其他实体,无需显式地处理这些关联。在这个" Hibernate级联...
在本文中,我们将深入探讨Hibernate注解的几个核心方面:级联关系、增删改查操作、二级缓存、日志配置以及注解解析。 1. **级联关系**: Hibernate中的级联关系允许我们在一个实体的操作中自动处理与其关联的其他...
级联关系在Hibernate中是指当一个实体发生某种操作(如保存、更新、删除)时,是否会影响到与之相关联的其他实体。通过配置级联关系,我们可以控制这些关联实体的行为。 1. **一对多(OneToMany)**:在数据库中,...
而对于HQL(Hibernate Query Language),它是Hibernate提供的面向对象的查询语言,可以方便地进行级联操作。例如,更新t_card的同时更新t_person: ```java String hql = "update TCard c set c.status = 'active'...
第七章_Hibernate_-_级联策略 第七章
首先,级联查询是通过自连接来实现的一种查询方式,特别是在树形结构的数据中,如组织架构、菜单系统等。以下是一个简单的级联查询示例: ```sql SELECT * FROM table START WITH selfid = id CONNECT BY PRIOR ...
在IT领域,级联失效(Cascading Failure)是一种复杂的现象,特别是在网络系统中,如电力网格、互联网或通信网络。当一个组件故障时,它可能导致其他相关组件相继失效,从而引发大规模的系统崩溃。MATLAB作为一种...
在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...
Hibernate 注解映射 Hibernate 注解映射是 Hibernate 框架中的一种映射方式,它使用 Java 注解来描述实体类和数据库表之间的映射关系,提高开发效率。 一、 环境搭建和基本映射 在使用 Hibernate 注解映射之前,...
级联删除和级联更新是数据库管理中非常重要的概念,特别是在多表关联的情况下,能够确保数据的一致性和完整性。本文将详细介绍如何在SQL Server中实现级联更新和级联删除,包括通过触发器的方式和使用外键约束的方式...
### MySQL级联更新与级联删除详解 在数据库设计中,外键约束是维护数据完整性和一致性的重要手段之一。MySQL的InnoDB存储引擎支持多种不同的处理外键的方式,包括级联更新(Cascade Update)和级联删除(Cascade ...