zoukankan      html  css  js  c++  java
  • @Transient的应用

    我今天分配的任务是为一个页面Debug,遇到了一个问题查询的实体类在数据库没有对应的表,这时最常用的是建立视图或者表,但是应用@Transient注释可以让你更简单,免除建立表还有视图需要找多表关联关系的苦恼,@Transient 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

    如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient 后面就不要用实体去查询了,在dao类中写一个多表联查。

    package com.haiyisoft.entity;

    import java.math.BigDecimal;
    import com.haiyisoft.ep.common.db.Record;
    import com.haiyisoft.ep.common.jpa.meta.EntityMetaData;
    import com.haiyisoft.ep.common.jpa.util.EntityMetaDataUtil;
    import com.haiyisoft.ep.common.util.PrintUtil;
    import com.haiyisoft.ep.exception.BaseRunException;
    import javax.persistence.*;

    import com.haiyisoft.entity.EntityBean;

    @Entity
    @Table(name = "eai_test_person_info")
    public class EaiTestPersonInfo extends EntityBean{
    private static final long serialVersionUID = 1L;
    @Transient 
    @Id
    @Column(name = "Pk")
    private BigDecimal pk;
    @Transient 
    @Column(name = "account")
    private String account="";
    @Transient 
    @Column(name = "contract")
    private String contract="";
    @Transient 
    @Column(name = "name")
    private String name="";
    @Transient 
    @Column(name = "sex")
    private String sex="";
    @Transient 
    @Column(name = "address")
    private String address="";
    @Transient 
    @Column(name = "phone")
    private String phone="";
    @Transient 
    @Column(name = "email")
    private String email="";

    public BigDecimal getPk() {
    return pk;
    }

    public void setPk(BigDecimal pk){
    this.pk = pk;
    }

    public String getAccount() {
    return account;
    }

    public void setAccount(String account){
    this.account = account;
    }

    public String getContract() {
    return contract;
    }

    public void setContract(String contract){
    this.contract = contract;
    }

    public String getName() {
    return name;
    }

    public void setName(String name){
    this.name = name;
    }

    public String getSex() {
    return sex;
    }

    public void setSex(String sex){
    this.sex = sex;
    }

    public String getAddress() {
    return address;
    }

    public void setAddress(String address){
    this.address = address;
    }

    public String getPhone() {
    return phone;
    }

    public void setPhone(String phone){
    this.phone = phone;
    }

    public String getEmail() {
    return email;
    }

    public void setEmail(String email){
    this.email = email;
    }

    @Override
    public Record exportToRecord() {
    EntityMetaData metaData = EntityMetaDataUtil.getEntityMetaData(this.getClass().getName());
    if (metaData == null) {
    new BaseRunException("Java类"+this.getClass().getName()+"没有元数据信息!不能导出为Record!").handle();
    }
    Record record = PrintUtil.genEmptyExportRecord(metaData);
    record.set("Pk", this.pk);
    record.set("account", this.account);
    record.set("contract", this.contract);
    record.set("name", this.name);
    record.set("sex", this.sex);
    record.set("address", this.address);
    record.set("phone", this.phone);
    record.set("email", this.email);
    record.set("checked", super.getChecked());
    return record;
    }


    }

  • 相关阅读:
    使用url_for()时,会自动调用转换器的to_url()方法
    自定义flask转换器
    flask自有转换器:int、float、path。默认string
    flask中重定向所涉及的反推:由视图函数反推url
    mysqldump 命令使用
    PIX 防火墙
    MySQL 常用show 语句
    防火墙与入侵检测技术
    mysql DQL语言操作
    mysql 视图
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/7998001.html
Copyright © 2011-2022 走看看