精华内容
下载资源
问答
  • XFire返回自定义实体类实例,完整代码,完整jar文件,可参考,可运行。
  • 自定义实体类简介

    2008-02-19 23:28:08
    自定义实体类简介(附示C#代码示例) MS官网收集
  • 在使用jpa的时候,jpa虽然封装了大量的crud操作,但是有时也会根据业务需要自定义查询语句以及返回的自定义实体类 接下来就将一步一步的排除坑 电信计费系统: 实体类介绍 费用表实体类 @Entity @Table(name =...

    在使用jpa的时候,jpa虽然封装了大量的crud操作,但是有时也会根据业务需要自定义查询语句以及返回的自定义实体类

    接下来就将一步一步的排坑

    实体类介绍
    费用表实体类

    @Entity
    @Table(name = "t_costs")
    public class Costs {
    
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	private Long id;
    	@Column(name="phone")
    	private String phone;//电话号码
        @Column(name="rateid")
    	private Long rateId;//费率的id
    	@Column(name="money")
    	private Float money;//消费金额
    	
    	
    	public Long getRateId() {
    		return rateId;
    	}
    	public void setRateId(Long rateId) {
    		this.rateId = rateId;
    	}
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	
    	public Float getMoney() {
    		return money;
    	}
    	public void setMoney(Float money) {
    		this.money = money;
    	}
    	@Override
    	public String toString() {
    		return "Costs [id=" + id + ", phone=" + phone + ", rateId=" + rateId + ", money=" + money + "]";
    	}
    }
    

    费率实体类

    @Entity
    @Table(name = "t_rates")
    public class Rates {
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	private Long id;
    	@Column(name="name")
    	private String name;//费率名称
    	@Column(name="rate")
    	private float rate; //费率价格
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public float getRate() {
    		return rate;
    	}
    	public void setRate(float rate) {
    		this.rate = rate;
    	}
        	
    
    
    
    **自定义结果类:**
    
    public class SearchResult {
    
    	private String phone;// 电话名称
    	private String name;// 分组名称
    	private double sum;// 总消费
    
    
    	public String getPhone() {
    		return phone;
    	}
    
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public double getSum() {
    		return sum;
    	}
    
    	public void setSum(double sum) {
    		this.sum = sum;
    	}
    
    }
    

    要根据业务需要从费用表中查询费率表的名称,并分组查询出不同费率的总额度
    sql代码如下:

    select *,SUM(c.money) as sum from t_costs c left join t_rates r
    	 * on r.id=c.rateId where c.phone =? GROUP BY r.name
    

    但是在@Query中查询***报错:

    • Path expected for join!**

    解释:查询语句中不能使用join语句。由于jpa是hibernate的封装,更支持的是其自带的hql语句。

    这里有两个解决方案,任选择其一

    • 一:改为hql语句查询,jpa使用hql语句的效率也会更高些
    • 二:增加nativeQuery=true

    代码如下:

    @Query(value="select *,SUM(c.money) as sum
     from t_costs c left join t_rates r  on r.id=c.rateId where c.phone =?  GROUP BY r.name",nativeQuery=true) 
    

    但是问题又来来了
    报错:
    - No converter found capable of converting from type**

    无法转化类型
    参考这边文章的解决方案二:
    https://blog.csdn.net/pp_fzp/article/details/80530588

    将sql语句改为hql语句,

    @Query(value = "select new  com.billing.demo.entity.SearchResult(c.phone,r.name,sum(c.money) 
    as sum) from Costs c, Rates r  where c.phone =?1  GROUP BY r.name")
    

    报错

    • Unable to locate appropriate constructor on class、

    根据报错信息,发现自己的构造函数与需要的构造函数不一致。

    修改后的构造函数

    	public SearchResult(String phone, String name,
        	double sum)
        	{
        		super();
        		this.phone = phone;
        		this.name = name;
        		this.sum = sum;
        	}
        
    

    终于成功成功了
    一步步的排坑 终于解决了这个问题。在这里插入图片描述

    展开全文
  • 案例十:自定义实体类 自定义实体类其实就是把每行需要的信息放在一起封装了对象,并且该对象必须实现 Writable接口,重写write和readFields的方法,读写的顺序和类型都必须一致才行, 这样该实体类就相当...

    案例十:自定义实体类

    自定义实体类其实就是把每行需要的信息放在一起封装了对象,并且该对象必须实现

    Writable接口重写write和readFields的方法,读写的顺序和类型都必须一致才行

    这样该实体类就相当于IntWritable或者LongWritable之类的数据类型一样了,可以作

    为map和reduce的参数进行相互传递使用,当然了按照需求重写toString方法就可以

    改成你需要的输出格式,用着很方便,代码看着也会很简洁。

    我很喜欢这个方法,封装成一个类,看着也很舒服。偷笑偷笑偷笑

     

    先把实体类的代码贴上:

     

    下面是执行代码:

    展开全文
  • JPA的HQL自定义实体类写法记录HQL实体类 最近连着两个项目自己搭的都是JPA,一开始还不太习惯,最后觉得小项目用JPA实在是太香了,如果写写就能体会到了 HQL 直接干货,HQL包含了多表,条件判断、非等、自定义实体类...

    JPA的HQL自定义实体类写法记录


    最近连着两个项目自己搭的都是JPA,一开始还不太习惯,最后觉得小项目用JPA实在是太香了,如果写写就能体会到了

    HQL

    直接干货,HQL包含了多表,条件判断、非等、自定义实体类

    @Query(value = "select new com.yuanchuang.shop.vo.OrderGoodsInfoVo(og,oi.orderTime,oi.orderState) " +
                "FROM OrderGoods og LEFT JOIN OrderInfo oi ON og.orderId=oi.id where og.goodsType LIKE (CASE WHEN ?1='' then '%%' else CONCAT('%',?1,'%') END) and " +
                "og.goodsName LIKE (CASE WHEN ?2='' then '%%' else CONCAT('%',?2,'%') END) and og.goodsCode LIKE (CASE WHEN ?3='' then '%%' else CONCAT('%',?3,'%') END) " +
                "and og.isrefund LIKE CONCAT('%',?5,'%') and og.isrefund<>0 and oi.orderTime >= ?4")
        Page<OrderGoodsInfoVo> findOrderGoodsInfoHQLByIsRefund(String goodsType, String goodsName, String goodsCode, String orderTime, String isRefund, Pageable pageable);
    

    实体类

    在这里插入图片描述

    展开全文
  • EF学习笔记——生成自定义实体类

    千次阅读 2018-11-09 10:29:05
    EF学习笔记——生成自定义实体类

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    使用EF,采用DataBase 模式,实体类都是按照数据库的定义自动生成,我们似乎无法干预。如果要生成自定义的实体类,该怎么做呢?

    思路是这样的:

    1、我们要自定义生成的实体类,都是分部类(partial),目的是对EF生成的实体类进行扩充;

    2、扩充部分,预先写好在模板里,自动生成

    3、每个实体类,都进行扩充

    实施方法:

    1、给VS2012安装两个插件:

    • Devart T4 Editor:为VS提供智能提示功能。
    • T4 Toolbox:在生成多文件时很有用。
    2、新建文件夹T4,存放模板文件

    1)创建T4 Toolbox模板文件EntityTemplate.tt,作用是生成多个实体类文件


    代码如下:

    <#+// <copyright file="Entity.tt" company="cqxm">//  Copyright © . All Rights Reserved.// </copyright>public class Entity : CSharpTemplate{    private string _className;     public Entity(string className)    {        _className = className;    } public override string TransformText({  base.TransformText();#>namespace testEFpublic partial class <#= _className #> : IEntity {  public string _ID         {            get            {                return Id.ToString();            }        } }}<#+        return this.GenerationEnvironment.ToString(); }}#>

    2)创建T4模板文件EntityOutput.tt,调用前面写的EntityTemplate.tt,真正生成各种实体类文件


    <#@ template debug="false" hostspecific="false" language="C#" #><#@ assembly name="System.Core" #><#@ import namespace="System.IO" #><#@ import namespace="System.Linq" #><#@ import namespace="System.Text" #><#@ import namespace="System.Collections.Generic" #><#@ include file="EF.Utility.CS.ttinclude"#><#@ include file="T4Toolbox.tt" #><#@ include file="EntityTemplate.tt" #><#    string curPath = Path.GetDirectoryName(Host.TemplateFile);    string destPath = Path.Combine(curPath, @"..\Partial");//将各个扩充实体类文件生成到文件夹Partial下    if(!Directory.Exists(destPath))    {        Directory.CreateDirectory(destPath);    }    const string inputFile = @"..\ShowMe.edmx";    var textTransform = DynamicTextTransformation.Create(this);    var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);    foreach (var entity in GetItemsToGenerate<EntityType>(itemCollection))    {//每个实体类都要自动生成扩充文件,是自动哦,参考文章里介绍的是手动输入实体类名称        Entity template = new Entity(entity.Name);        string fileName = string.Format(@"{0}\{1}.cs", destPath, entity.Name);        template.Output.Encoding = Encoding.UTF8;        if(File.Exists(fileName))        {            File.Delete(fileName);        }        template.RenderToFile(fileName);    }#><#+/*以下代码都是为了获得EF自动生成的所有实体类名单,抄自 *.edmx\*.Context.tt。没办法,谁叫俺看不懂哪些代码呢*/public class EdmMetadataLoader{    private readonly IDynamicHost _host;    private readonly System.Collections.IList _errors;    public EdmMetadataLoader(IDynamicHost host, System.Collections.IList errors)    {        ArgumentNotNull(host, "host");        ArgumentNotNull(errors, "errors");        _host = host;        _errors = errors;    }    public IEnumerable<GlobalItem> CreateEdmItemCollection(string sourcePath)    {        ArgumentNotNull(sourcePath, "sourcePath");        if (!ValidateInputPath(sourcePath))        {            return new EdmItemCollection();        }        var schemaElement = LoadRootElement(_host.ResolvePath(sourcePath));        if (schemaElement != null)        {            using (var reader = schemaElement.CreateReader())            {                IList<EdmSchemaError> errors;                var itemCollection = MetadataItemCollectionFactory.CreateEdmItemCollection(new[] { reader }, out errors);                ProcessErrors(errors, sourcePath);                return itemCollection;            }        }        return new EdmItemCollection();    }    public string GetModelNamespace(string sourcePath)    {        ArgumentNotNull(sourcePath, "sourcePath");        if (!ValidateInputPath(sourcePath))        {            return string.Empty;        }        var model = LoadRootElement(_host.ResolvePath(sourcePath));        if (model == null)        {            return string.Empty;        }        var attribute = model.Attribute("Namespace");        return attribute != null ? attribute.Value : "";    }    private bool ValidateInputPath(string sourcePath)    {        if (sourcePath == "$" + "edmxInputFile" + "$")        {            _errors.Add(                new CompilerError(_host.TemplateFile ?? sourcePath, 0, 0, string.Empty,                    GetResourceString("Template_ReplaceVsItemTemplateToken")));            return false;        }        return true;    }    public XElement LoadRootElement(string sourcePath)    {        ArgumentNotNull(sourcePath, "sourcePath");        var root = XElement.Load(sourcePath, LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);        return root.Elements()            .Where(e => e.Name.LocalName == "Runtime")            .Elements()            .Where(e => e.Name.LocalName == "ConceptualModels")            .Elements()            .Where(e => e.Name.LocalName == "Schema")            .FirstOrDefault()                ?? root;    }    private void ProcessErrors(IEnumerable<EdmSchemaError> errors, string sourceFilePath)    {        foreach (var error in errors)        {            _errors.Add(                new CompilerError(                    error.SchemaLocation ?? sourceFilePath,                    error.Line,                    error.Column,                    error.ErrorCode.ToString(CultureInfo.InvariantCulture),                    error.Message)                {                    IsWarning = error.Severity == EdmSchemaErrorSeverity.Warning                });        }    }        public bool IsLazyLoadingEnabled(EntityContainer container)    {        string lazyLoadingAttributeValue;        var lazyLoadingAttributeName = MetadataConstants.EDM_ANNOTATION_09_02 + ":LazyLoadingEnabled";        bool isLazyLoading;        return !MetadataTools.TryGetStringMetadataPropertySetting(container, lazyLoadingAttributeName, out lazyLoadingAttributeValue)            || !bool.TryParse(lazyLoadingAttributeValue, out isLazyLoading)            || isLazyLoading;    }}public static void ArgumentNotNull<T>(T arg, string name) where T : class{    if (arg == null)    {        throw new ArgumentNullException(name);    }}    private static readonly Lazy<System.Resources.ResourceManager> ResourceManager =    new Lazy<System.Resources.ResourceManager>(        () => new System.Resources.ResourceManager("System.Data.Entity.Design", typeof(MetadataItemCollectionFactory).Assembly), isThreadSafe: true);public static string GetResourceString(string resourceName){    ArgumentNotNull(resourceName, "resourceName");    return ResourceManager.Value.GetString(resourceName, null);}private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName";public IEnumerable<T> GetItemsToGenerate<T>(IEnumerable<GlobalItem> itemCollection) where T: EdmType{    return itemCollection        .OfType<T>()        .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName))        .OrderBy(i => i.Name);}#>

    生成各种实体类文件的方法很简单,只要保存一下这个EntityOutput.tt文件,各种实体类文件即可应声生成,很爽。

    最后生成的文件如蓝线圈圈所示


    某个实体扩充类:

    // <autogenerated>//   This file was generated by T4 code generator EntityOutput.tt.//   Any changes made to this file manually will be lost next time the file is regenerated.// </autogenerated>namespace testEFpublic partial class Show : IEntity {  public string _ID         {            get            {                return Id.ToString();            }        } }}



    这个模板文件看起来好复杂,事实上,绝大部分都是自动生成,和拷贝过来的,我自己其实并不懂。


    参考文章:

    MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码


    http://www.cnblogs.com/guomingfeng/p/mvc-ef-t4.html

    EF架构~终于实现了Update方法的统一

    http://www.cnblogs.com/lori/archive/2011/07/25/2115982.html


               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • idea无法导入自定义实体类的包

    千次阅读 2020-12-08 17:32:31
    idea无法导入自定义实体类的包 这是一个非常低级的错误,因为代码写好上传gitte仓库后,在需要时我下载下来准备跑,但是导包就是导不进,最后原来是该项目的jar包没能导入成功。 解决方案 在想本地运行仓库文件,...
  • 自定义的代码生成工具,可以根据数据库表来自动生成实体类,dao层,用于Hibernate和SpringDataJPA,支持lombok注解@Data和普通方式。单独使用需要jdbc连接包和Hibernate-jpa包。 使用方法 public static void main...
  • Spring data jpa 实现多表联合分页查询,自定义实体类接收返回对象集合1.定义返回结果实体类:2.DAO层方法编写3.定义Controller层方法调用工具类定义 1.定义返回结果实体类: public class TestDTO{ private ...
  • ASP.NET:自定义实体类

    千次阅读 2013-06-06 15:56:39
    ASP.NET:自定义实体类 什么是自定义实体? 自定义实体是代表业务域的对象,因此,它们是业务层的基础。如果您有一个用户身份验证功能(本文通篇都使用该示例进行讲解),您就可能具有 User 和 Role ...
  • C++做客户端,通过gSoap调用webservice,所调用的webservice方法返回的是自定义实体类,如果返回int,String等基本数据类型,这很容易实现;但这里函数返回的是List,Course,List甚至是Object,应该很有价值!
  • C# 生成自定义实体类

    千次阅读 2020-05-29 13:56:05
    程序采用C# 代码编写,可自定义修改实体类,支持 sqlserver mysql 等数据库 因上传资源不方便介绍所以写篇博客记录 初始效果如下: 运行结果图 2. 自定义修改后
  • C++做客户端,通过gSoap调用java发布的webservice,所调用的java方法返回的是自定义实体类,如果返回int,String等基本数据类型,这很容易实现;但这里函数返回的是List,Course,List甚至是Object,应该很有价值! ...
  • 自定义实体类在三层架构之间传递数据

    千次阅读 热门讨论 2015-01-30 19:23:24
    自定义实体类是专门承载业务实体数据的类,一般将方法分离出来,只包含属性和字段的定义。每个实体类对应数据库中的一个表,每个属性对应表中的一个相应的字段。使用实体类属于面向对象编程的思想,将每个表封装成...
  • * (Spring Data JPA 查询结果返回至自定义实体) * 查询方法使用总结: * <p> * 1、查询中DingtalkKaoQinRecordDto最好写全路径,程序有可能无法定位到该类。 * <p> * 2、自定义的实体类属性只需要...
  • Hibernate3.1.3使用自定义实体类实现映射 前言: 在使用Hibernate操作数据库时, 特别是进行查询时,往往要使用存储过程或一些不方便使用实体类映射的SQL语句。这时就要用到hibernate的自定义SQL语句映射类。下面来...
  • JPA原生sql返回值转自定义实体类

    千次阅读 2019-10-30 17:52:56
    有两个月没更新过CSDN了,裸辞了,半个月前刚入职了新下家,这里适应下新公司的项目技术。...这里就先记录第一个坑,用jpa注解查询完之后发现无法用以往的实体类直接映射接收,百度谷歌无果... 这里实...
  • 使用自定义实体类和集合代替DataSet

    千次阅读 2011-07-01 09:47:00
    掌握 ASP.NET 之路:自定义实体类简介 发布日期: 5/24/2005 | 更新日期: 5/24/2005Karl SeguinMicrosoft Corporation摘要:有些情况下,非类型化的 DataSet 可能并非数据操作的最佳解决方案。本指南的目的就是...
  • 自定义实体类简介 [收藏]

    千次阅读 2006-01-05 11:42:00
    自定义实体类简介 Karl SeguinMicrosoft Corporation摘要:有些情况下,非类型化的 DataSet 可能并非数据操作的最佳解决方案。本指南的目的就是探讨 DataSet 的一种替代解决方案,即:自定义实体与集合。(本文包含...
  • 记录使用JPA入坑之 关于JPA查询返回结果映射自定义实体类报ERROR:argument type mismatch 当你都走到argument type mismatch这一步,说明你离真相已经不远了。 (以下步骤为记录我使用JPA的要点,你可直接跳过看到...
  • 今天碰到使用jpa进行多表查询的问题,需要同时查询仓库表(bas_stock)和物品表(bas_product),然后将两个表的一些字段显示...实体类创建需要无参构造方法和有参构造方法,用于实体类的转换,如果缺少构造方法会报异...
  • Spring Data JPA映射自定义实体类

    千次阅读 2019-03-12 18:34:17
    这个问题困扰了我2天=-=,好像也能使用 jpql解决 先说下自己的功能:查询oracle最近sql执行记录 ...中的参数必须要和实体类中一一对应,所以这就有一个不可控制的属性rownum,所以我们不能使用Page...
  • 自定义实体类:因为需要做相关记录的统计,而表中没有统计字段 public class TrafficJeevesDistrictCount { //施工top5+1 按区域 private String districtInfo; private String districtCount; public ...
  • 自定义实体类与DataSet的比较

    千次阅读 2007-02-13 16:54:00
    转自MSDN:http://www.microsoft.com/china/msdn/library/webservices/asp.net/CustEntCls.mspx?mfr=true掌握 ASP.NET 之路:自定义实体类简介发布日期: 5/24/2005 | 更新日期: 5/24/2005Karl SeguinMicrosoft ...
  • JPA使用nativequery多表关联查询返回自定义实体类

    万次阅读 热门讨论 2018-07-18 19:28:58
    3.直接使用NativeQuery等方式实现复杂查询个人比较喜欢,直观且便利,弊端在于无法返回自定义实体类。需要手动封装工具类来实现Object到目标对象的反射。   使用sql并返回自定义实体类 个人比较喜欢的实现...
  • springDataJpa入门教程(3-2)-基于EntityManager原生sql多表联合查询+动态条件查询+分页返回自定义实体类对象 在上一节,讲到了基于EntityManager原生sql多表联合查询+动态条件查询+分页,查询的结果集是用Object...
  • 最近在写一个功能,jpa操作,不过还是习惯性地用了sql语句来查询,主要是嫌麻烦,想返回的数据用一条查询返回来,所以就用spring jpa写了个自定义实体类来装我专门返回来的数据字段,然后sql也有点复杂,join了几...
  • 在项目中使用jpa进行多表连接查询,基本上返回的都是多张表中的数据。那么问题来了,这关联返回的数据那么多,还是不同表...示例实体类如下: 1.教师类 public class Teacher implements Serializable { priva...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 183,960
精华内容 73,584
关键字:

自定义实体类