1. 程式人生 > >如何在實體類entity新增表中沒有對應的欄位

如何在實體類entity新增表中沒有對應的欄位

@Transient表示該屬性並非一個到資料庫表的欄位的對映,ORM框架將忽略該屬性. 
如果一個屬性並非資料庫表的欄位對映,務必將其標示為@Transient,否則,ORM框架預設其註解為@Basic

比如現在有實體類Message,但是我想在使用它時想要多用一個欄位來接收未讀訊息的數量 unReadCount,此時只要在欄位前加上@Transient註解就可以了。記住要引入  import javax.persistence.Transient;


@Entity
@Table(name = "message")
@DynamicUpdate
@DynamicInsert
@Data
public class Message extends BaseEntity {

	/*接收人id*/
	private Long receiveCustomerId;
	/*傳送人id*/
	private Long sendCustomerId;
	/*標題*/
	private String title;
	/*內容*/
	private String content;
	/*通知資訊*/
	private Integer msgType;
	/*0未讀 1已讀*/
	private Integer status;
        @Transient
	private Long unReadCount;

}

加上註解後,重啟服務時:2018-11-12 17:46:53.130  INFO 972 --- [  restartedMain] o.h.t.h.SchemaUpdate                     : HHH000228: Running hbm2ddl schema update 就不會改變表結構了。

2018-11-12 17:46:52.151  INFO 972 --- [  restartedMain] o.h.Version                              : HHH000412: Hibernate Core {5.0.12.Final}
2018-11-12 17:46:52.152  INFO 972 --- [  restartedMain] o.h.c.Environment                        : HHH000206: hibernate.properties not found
2018-11-12 17:46:52.153  INFO 972 --- [  restartedMain] o.h.c.Environment                        : HHH000021: Bytecode provider name : javassist
2018-11-12 17:46:52.200  INFO 972 --- [  restartedMain] o.h.a.c.Version                          : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2018-11-12 17:46:52.346  INFO 972 --- [  restartedMain] o.h.d.Dialect                            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2018-11-12 17:46:53.130  INFO 972 --- [  restartedMain] o.h.t.h.SchemaUpdate                     : HHH000228: Running hbm2ddl schema update