added indexes and constraints

This commit is contained in:
Athou
2013-03-29 11:51:27 +01:00
parent dd4334ff48
commit 04ce8b3a3b
9 changed files with 32 additions and 12 deletions

View File

@@ -75,11 +75,10 @@ public class OPMLImporter {
sub = new FeedSubscription(); sub = new FeedSubscription();
sub.setFeed(feed); sub.setFeed(feed);
sub.setUser(user); sub.setUser(user);
feedSubscriptionService.save(sub);
} }
sub.setCategory(parent); sub.setCategory(parent);
sub.setTitle(outline.getText()); sub.setTitle(outline.getText());
feedSubscriptionService.update(sub); feedSubscriptionService.saveOrUpdate(sub);
} }
} }
} }

View File

@@ -10,6 +10,8 @@ import javax.persistence.Table;
import javax.persistence.Temporal; import javax.persistence.Temporal;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
import org.hibernate.annotations.Index;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
@Entity @Entity
@@ -17,7 +19,8 @@ import com.google.common.collect.Sets;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class Feed extends AbstractModel { public class Feed extends AbstractModel {
@Column(length = 2048) @Column(length = 2048, nullable = false, unique = true)
@Index(name = "feed_index")
private String url; private String url;
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)

View File

@@ -4,6 +4,7 @@ import java.util.Set;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
@@ -15,10 +16,11 @@ import com.google.common.collect.Sets;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class FeedCategory extends AbstractModel { public class FeedCategory extends AbstractModel {
@Column(length = 128) @Column(length = 128, nullable = false)
private String name; private String name;
@ManyToOne @ManyToOne
@JoinColumn(nullable = false)
private User user; private User user;
@ManyToOne @ManyToOne

View File

@@ -5,6 +5,7 @@ import java.util.Set;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Lob; import javax.persistence.Lob;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
@@ -13,16 +14,19 @@ import javax.persistence.Temporal;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
import org.apache.commons.codec.binary.StringUtils; import org.apache.commons.codec.binary.StringUtils;
import org.hibernate.annotations.Index;
@Entity @Entity
@Table(name = "FEEDENTRIES") @Table(name = "FEEDENTRIES")
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class FeedEntry extends AbstractModel { public class FeedEntry extends AbstractModel {
@Column(length = 2048) @Column(length = 2048, nullable = false, unique = true)
@Index(name = "guid_index")
private String guid; private String guid;
@ManyToOne @ManyToOne
@JoinColumn(nullable = false)
private Feed feed; private Feed feed;
@Column(length = 2048) @Column(length = 2048)
@@ -35,6 +39,7 @@ public class FeedEntry extends AbstractModel {
private String url; private String url;
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
@Index(name = "updated_index")
private Date updated; private Date updated;
@OneToMany(mappedBy = "entry") @OneToMany(mappedBy = "entry")

View File

@@ -2,6 +2,7 @@ package com.commafeed.backend.model;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.Table; import javax.persistence.Table;
@@ -11,9 +12,11 @@ import javax.persistence.Table;
public class FeedEntryStatus extends AbstractModel { public class FeedEntryStatus extends AbstractModel {
@ManyToOne @ManyToOne
@JoinColumn(nullable = false)
private User user; private User user;
@ManyToOne @ManyToOne
@JoinColumn(nullable = false)
private FeedEntry entry; private FeedEntry entry;
@Column(name = "read_status") @Column(name = "read_status")

View File

@@ -2,6 +2,7 @@ package com.commafeed.backend.model;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.Table; import javax.persistence.Table;
@@ -11,12 +12,14 @@ import javax.persistence.Table;
public class FeedSubscription extends AbstractModel { public class FeedSubscription extends AbstractModel {
@ManyToOne @ManyToOne
@JoinColumn(nullable = false)
private User user; private User user;
@ManyToOne @ManyToOne
@JoinColumn(nullable = false)
private Feed feed; private Feed feed;
@Column(length = 128) @Column(length = 128, nullable = false)
private String title; private String title;
@ManyToOne @ManyToOne

View File

@@ -8,6 +8,8 @@ import javax.persistence.Entity;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
import org.hibernate.annotations.Index;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
@Entity @Entity
@@ -15,13 +17,14 @@ import com.google.common.collect.Sets;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class User extends AbstractModel { public class User extends AbstractModel {
@Column(length = 32) @Column(length = 32, nullable = false, unique = true)
@Index(name = "username_index")
private String name; private String name;
@Column(length = 256) @Column(length = 256, nullable = false)
private byte[] password; private byte[] password;
@Column(length = 8) @Column(length = 8, nullable = false)
private byte[] salt; private byte[] salt;
@OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST) @OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST)

View File

@@ -12,10 +12,10 @@ import javax.persistence.Table;
public class UserRole extends AbstractModel { public class UserRole extends AbstractModel {
@OneToOne @OneToOne
@JoinColumn(name = "user_id") @JoinColumn(name = "user_id", nullable = false)
private User user; private User user;
@Column(name = "roleName") @Column(name = "roleName", nullable = false)
private String role; private String role;
public UserRole() { public UserRole() {

View File

@@ -1,5 +1,6 @@
package com.commafeed.backend.model; package com.commafeed.backend.model;
import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.EnumType; import javax.persistence.EnumType;
import javax.persistence.Enumerated; import javax.persistence.Enumerated;
@@ -17,10 +18,11 @@ public class UserSettings extends AbstractModel {
} }
@OneToOne @OneToOne
@JoinColumn(name = "user_id") @JoinColumn(name = "user_id", nullable = false)
private User user; private User user;
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
@Column(nullable = false)
private ReadingMode readingMode; private ReadingMode readingMode;
public ReadingMode getReadingMode() { public ReadingMode getReadingMode() {