我有一个被映射到视图的@Entity
,它长这样
import org.hibernate.annotations.Immutable;
import javax.persistence.*;
@Table(name = "user_earning")
@Entity
@Immutable
public class UserFlightEarning {
@Id public Long userId;
public Long flightId;
@Column(name = "flight_seq") public Long flightSequence;
}
这段代码可以正常工作,我可以使用dao从视图中检索记录。然而,我在日志中注意到Hibernate实际上正在尝试创建表格,但失败了,因为它已经存在。
2015-11-12 21:56:34.841 ERROR 4204 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000389: Unsuccessful: create table user_profile (user_id bigint not null, avg_airtime integer, avg_fuel_points integer, avg_miles integer, email varchar(255), first_name varchar(255), flights_count integer, furthest_flight integer, last_name varchar(255), longest_flight integer, most_visited_city varchar(255), tier_end integer, tier_start integer, primary key (user_id)) 2015-11-12 21:56:34.841 ERROR 4204 --- [ost-startStop-1] org.hibernate.tool.hbm2ddl.SchemaExport : Table 'user_profile' already exists
我能否配置Hibernate以跳过此类实体的创建?我原本以为 @Immutable
注释会告诉Hibernate跳过创建,但似乎这个注释只是防止对表格进行crud操作。
create-drop
时,Spring 能够忽略那些实体。 - prettyvoid