zoukankan      html  css  js  c++  java
  • Springboot JPA 实体类添加@Transient

    • Hibernate

    在实体类与数据库表建立映射关系时添加 @Table 注解, 当表中不存在实体类中的某个属性的时候, 就需要用到 @Transient 注解

    • 用法: 添加在需要忽略的实体类属性上

    @Transient
    private String columeName;

    • 实体类
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import jdk.nashorn.internal.ir.annotations.Ignore;
    import lombok.Data;
    import javax.persistence.*;
    
    @lombok.Data
    @Entity
    public class UserMonitorStationMapping {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer id;
        
        private Integer monitorStationId;
        
        @Transient
        private String shortName;        // TODO 数据库表中无此字段
    
        @ManyToOne
        @JsonIgnore
        private User user;
    }
    
    • 数据库表结构
      这里写图片描述

    org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter
    .java:49)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:124)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:88)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2062)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1859)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838)
    at org.hibernate.loader.Loader.doQuery(Loader.java:906)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:348)
    at org.hibernate.loader.Loader.doList(Loader.java:2550)
    at org.hibernate.loader.Loader.doList(Loader.java:2536)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2366)
    at org.hibernate.loader.Loader.list(Loader.java:2361)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:495)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:357)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:198)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1230)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
    at com.bbs.dao.BaseDao.list(BaseDao.java:82)
    at com.bbs.dao.BaseDao.list(BaseDao.java:92)
    at com.bbs.service.impl.OrderServiceImpl.selectOrdersByOne(OrderServiceImpl.java:35)
    at com.bbs.service.impl.OrderServiceImpl

    • 解决方法

    在实体类上添加 @Transient 注解

    有梦为马,游历天涯!
  • 相关阅读:
    Python多线程爬虫爬取电影天堂资源
    BGP协议初探
    dubbo序列化hibernate.LazyInitializationException could not initialize proxy
    Spring Boot打包war jar 部署tomcat
    HSSFClientAnchor 参数说明
    attempt to create delete event with null entity
    解决BUG:CS1617: 选项“6”对 /langversion 无效;必须是 ISO-1、ISO-2、3、4、5 或 Default
    Android Studio :enable vt-x in your bios security,已经打开还是报错的解决方法
    visual studio 2015 开发android
    ASP.NET用QQ,网易发送邮件以及添加附件
  • 原文地址:https://www.cnblogs.com/qijianguo/p/10180876.html
Copyright © 2011-2022 走看看