gpt4 book ai didi

java - Hibernate 不创建表

转载 作者:行者123 更新时间:2023-11-29 02:56:48 25 4
gpt4 key购买 nike

我正在实现一个 Spring+Hibernate 网络应用程序。在这个应用程序中,我有如下三个实体:

用户:

@Entity
@Table(name = "tbl_user")
public class User {

@Id
private long userId;

@Column(nullable = false)
private String username;
@Column(nullable = false)
private String password;
private Calendar joinDate;
private String mobile;
private String displayName;
private boolean active;
private boolean searchable;
@ManyToMany(mappedBy = "joinedUsers")
private Collection<Session> joinedSessions;
@OneToMany(mappedBy = "sender")
private Collection<Message> messages;

////getters and setters
}

session :

@Entity
@Table(name = "tbl_session")
public class Session {

@Id
private long sessionId;
private Calendar startDate;
@ManyToMany
@JoinTable(
name = "tbl_user_session",
joinColumns = {@JoinColumn(name = "sessionId")},
inverseJoinColumns = {@JoinColumn(name = "userId")}
)
private Collection<User> joinedUsers;
@OneToMany(mappedBy = "session")
private Collection<Message> messages;

////getters and setters
}

留言:

@Entity
@Table(name = "tbl_message")
public class Message {

@Id
private long messageId;

@ManyToOne
private User sender;
@ManyToOne
private Session session;
private Calendar sendDate;
private String content;
private boolean mediaMessage;
private boolean sent;
private boolean read;
////getters and setters
}

我已将 hibernate.dialect 设置为 org.hibernate.dialect.MySQL5InnoDBDialect 并将 hibernate.hbm2ddl.auto 设置为 create

当我运行 tomcat 时,JPA session 将成功创建,表 tbl_usertbl_sessiontbl_user_session 将被创建,但 hibernate 不会创建 tbl_message

服务器日志:

Hibernate: 
alter table tbl_message
drop
foreign key FK_4unouf9cqiw2e35a7mae9latk
Hibernate:
alter table tbl_message
drop
foreign key FK_h06m8p8o7furulj37xh4fd7s7
Hibernate:
alter table tbl_user_session
drop
foreign key FK_o9ow3kvh6odmn7raj1r10ninx
Hibernate:
alter table tbl_user_session
drop
foreign key FK_j33qeb6km5ffswqfcms9c3xqj
Hibernate:
drop table if exists tbl_message
Hibernate:
drop table if exists tbl_session
Hibernate:
drop table if exists tbl_user
Hibernate:
drop table if exists tbl_user_session
Hibernate:
create table tbl_message (
messageId bigint not null,
content varchar(255),
mediaMessage bit not null,
read bit not null,
sendDate datetime,
sent bit not null,
sender_userId bigint,
session_sessionId bigint,
primary key (messageId)
) ENGINE=InnoDB
Hibernate:
create table tbl_session (
sessionId bigint not null,
startDate datetime,
primary key (sessionId)
) ENGINE=InnoDB
Hibernate:
create table tbl_user (
userId bigint not null,
active bit not null,
displayName varchar(255),
joinDate datetime,
mobile varchar(255),
password varchar(255) not null,
searchable bit not null,
username varchar(255) not null,
primary key (userId)
) ENGINE=InnoDB
Hibernate:
create table tbl_user_session (
sessionId bigint not null,
userId bigint not null
) ENGINE=InnoDB
Hibernate:
alter table tbl_message
add constraint FK_4unouf9cqiw2e35a7mae9latk
foreign key (sender_userId)
references tbl_user (userId)
Hibernate:
alter table tbl_message
add constraint FK_h06m8p8o7furulj37xh4fd7s7
foreign key (session_sessionId)
references tbl_session (sessionId)
Hibernate:
alter table tbl_user_session
add constraint FK_o9ow3kvh6odmn7raj1r10ninx
foreign key (userId)
references tbl_user (userId)
Hibernate:
alter table tbl_user_session
add constraint FK_j33qeb6km5ffswqfcms9c3xqj
foreign key (sessionId)
references tbl_session (sessionId)

提前感谢任何帮助。

最佳答案

create table tbl_message (
messageId bigint not null,
content varchar(255),
mediaMessage bit not null,
read bit not null,
sendDate datetime,
sent bit not null,
sender_userId bigint,
session_sessionId bigint,
primary key (messageId)
) ENGINE=InnoDB

这个 sql 失败,因为 Read 是保留规则,应该变成:

create table tbl_message (
messageId bigint not null,
content varchar(255),
mediaMessage bit not null,
`read` bit not null,
sendDate datetime,
sent bit not null,
sender_userId bigint,
session_sessionId bigint,
primary key (messageId)
) ENGINE=InnoDB

自己创建表或为该列指定另一个名称并带有注释。

关于java - Hibernate 不创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29967159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com