jlp*_*jlp 2 java spring-data-jpa spring-data-rest spring-boot
我在 SpringBoot 中使用 Spring JPA 和 Spring Data Rest。我有一个名为 user 的数据库表和一个用于该表的实体。我没有这个应用程序的控制器。
@Entity
@Table(name = "USER")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "USER_ID")
private Integer userid;
@Basic(optional = false)
@Column(name = "USER_NAME")
private String username;
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要再添加一个字段,它不是 USER 表中的一列。某些监视工具将使用它来进行跟踪。
@Entity
@Table(name = "USER")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "USER_ID")
private Integer userid;
@Basic(optional = false)
@Column(name = "USER_NAME")
private String username;
private String tracer; // this field is not in DB
}
Run Code Online (Sandbox Code Playgroud)
添加此字段后,我得到一个 jdbc.spi.SqlExceptionHelper - Invalid column name "tracer",这是有道理的,因为此类被注释为实体。我的问题是:有没有办法将非数据库字段添加到实体类中?我想不是,但想知道万一有人有解决方案。谢谢。
是的,只需将注释添加@Transient到您的字段即可。
您可以从 API 文档中阅读更多内容:
https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/Transient.html
在这里(第 37.1.2.1 节):
https://docs.oracle.com/javaee/7/tutorial/persistence-intro001.htm#BNBQA
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
4113 次 |
| 最近记录: |