mirror of https://github.com/hykilpikonna/AquaDX
[chuni] fix unique key constraint , fix #1
parent
342decb087
commit
20422b130f
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserCharacter")
|
||||
@Table(name = "chuni_user_character")
|
||||
@Table(name = "chuni_user_character", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "character_id"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -33,6 +33,7 @@ public class UserCharacter implements Serializable {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@Column(name = "character_id")
|
||||
private int characterId;
|
||||
|
||||
private int playCount;
|
||||
|
|
|
@ -14,7 +14,7 @@ import java.time.LocalDateTime;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserCharge")
|
||||
@Table(name = "chuni_user_charge")
|
||||
@Table(name = "chuni_user_charge", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "charge_id"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -33,6 +33,7 @@ public class UserCharge implements Serializable {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@Column(name = "charge_id")
|
||||
private int chargeId;
|
||||
|
||||
private int stock;
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserCourse")
|
||||
@Table(name = "chuni_user_course")
|
||||
@Table(name = "chuni_user_course", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "course_id"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -29,6 +29,7 @@ public class UserCourse {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@Column(name = "course_id")
|
||||
private int courseId;
|
||||
|
||||
private int classId;
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserDuel")
|
||||
@Table(name = "chuni_user_duel")
|
||||
@Table(name = "chuni_user_duel", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "duel_id"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -29,6 +29,7 @@ public class UserDuel {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@Column(name = "duel_id")
|
||||
private int duelId;
|
||||
|
||||
private int progress;
|
||||
|
|
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserItem")
|
||||
@Table(name = "chuni_user_item")
|
||||
@Table(name = "chuni_user_item", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "item_id", "item_kind"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -34,8 +34,10 @@ public class UserItem implements Serializable {
|
|||
private UserData user;
|
||||
|
||||
// Kind ,Type
|
||||
@Column(name = "item_kind")
|
||||
private int itemKind;
|
||||
|
||||
@Column(name = "item_id")
|
||||
private int itemId;
|
||||
|
||||
private int stock;
|
||||
|
|
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserMap")
|
||||
@Table(name = "chuni_user_map")
|
||||
@Table(name = "chuni_user_map", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "map_id"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -43,6 +43,7 @@ public class UserMap implements Serializable {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@Column(name = "map_id")
|
||||
private int mapId;
|
||||
|
||||
private int position;
|
||||
|
|
|
@ -14,7 +14,7 @@ import java.io.Serializable;
|
|||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "ChuniUserMusicDetail")
|
||||
@Table(name = "chuni_user_music_detail")
|
||||
@Table(name = "chuni_user_music_detail", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "music_id", "level"})})
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -50,6 +50,7 @@ public class UserMusicDetail implements Serializable {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@Column(name = "music_id")
|
||||
private int musicId;
|
||||
|
||||
private int level;
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
ALTER TABLE `chuni_user_character`
|
||||
ADD UNIQUE KEY `UK_chuni_user_character` (`user_id`, `character_id`);
|
||||
|
||||
ALTER TABLE `chuni_user_charge`
|
||||
ADD UNIQUE KEY `UK_chuni_user_charge` (`user_id`, `charge_id`);
|
||||
|
||||
ALTER TABLE `chuni_user_course`
|
||||
ADD UNIQUE KEY `UK_chuni_user_course` (`user_id`, `course_id`);
|
||||
|
||||
ALTER TABLE `chuni_user_duel`
|
||||
ADD UNIQUE KEY `UK_chuni_user_duel` (`user_id`, `duel_id`);
|
||||
|
||||
ALTER TABLE `chuni_user_item`
|
||||
ADD UNIQUE KEY `UK_chuni_user_item` (`user_id`, `item_id`, `item_kind`);
|
||||
|
||||
ALTER TABLE `chuni_user_map`
|
||||
ADD UNIQUE KEY `UK_chuni_user_map` (`user_id`, `map_id`);
|
||||
|
||||
ALTER TABLE `chuni_user_music_detail`
|
||||
ADD UNIQUE KEY `UK_chuni_user_music_detail` (`user_id`, `music_id`, `level`);
|
|
@ -0,0 +1,72 @@
|
|||
|
||||
CREATE TABLE chuni_user_music_detail_new (
|
||||
id INTEGER,
|
||||
full_chain INTEGER NOT NULL,
|
||||
is_all_justice BOOLEAN NOT NULL,
|
||||
is_full_combo BOOLEAN NOT NULL,
|
||||
is_lock BOOLEAN NOT NULL,
|
||||
is_success BOOLEAN NOT NULL,
|
||||
level INTEGER NOT NULL,
|
||||
max_chain INTEGER NOT NULL,
|
||||
max_combo_count INTEGER NOT NULL,
|
||||
miss_count INTEGER NOT NULL,
|
||||
music_id INTEGER NOT NULL,
|
||||
play_count INTEGER NOT NULL,
|
||||
res_accept_count INTEGER NOT NULL,
|
||||
res_request_count INTEGER NOT NULL,
|
||||
res_success_count INTEGER NOT NULL,
|
||||
score_max INTEGER NOT NULL,
|
||||
score_rank INTEGER NOT NULL,
|
||||
user_id BIGINT REFERENCES chuni_user_data (id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (
|
||||
id
|
||||
),
|
||||
CONSTRAINT chuni_user_music_detail_uq UNIQUE (
|
||||
level,
|
||||
music_id,
|
||||
user_id
|
||||
)
|
||||
);
|
||||
|
||||
INSERT INTO chuni_user_music_detail_new (
|
||||
id,
|
||||
full_chain,
|
||||
is_all_justice,
|
||||
is_full_combo,
|
||||
is_lock,
|
||||
is_success,
|
||||
level,
|
||||
max_chain,
|
||||
max_combo_count,
|
||||
miss_count,
|
||||
music_id,
|
||||
play_count,
|
||||
res_accept_count,
|
||||
res_request_count,
|
||||
res_success_count,
|
||||
score_max,
|
||||
score_rank,
|
||||
user_id
|
||||
)
|
||||
SELECT id,
|
||||
full_chain,
|
||||
is_all_justice,
|
||||
is_full_combo,
|
||||
is_lock,
|
||||
is_success,
|
||||
level,
|
||||
max_chain,
|
||||
max_combo_count,
|
||||
miss_count,
|
||||
music_id,
|
||||
play_count,
|
||||
res_accept_count,
|
||||
res_request_count,
|
||||
res_success_count,
|
||||
score_max,
|
||||
score_rank,
|
||||
user_id
|
||||
FROM chuni_user_music_detail;
|
||||
|
||||
ALTER TABLE chuni_user_music_detail RENAME TO bak_chuni_user_music_detail;
|
||||
ALTER TABLE chuni_user_music_detail_new RENAME TO chuni_user_music_detail;
|
Loading…
Reference in New Issue