SlideShare a Scribd company logo
Creating a Facebook Clone - Part XVIII
© Codename One 2017 all rights reserved
Pros Con
Clustering Large Database
Reasonable Performance Performance Could be Challenging
Simple Simple unless we scale
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@Entity
public class Media {
@Id
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
Media
@ManyToOne
private User owner;
@Lob
private byte[] data;
public Media() {
id = UUID.randomUUID().toString();
}
public MediaDAO getDAO() {
return new MediaDAO(id, filename, date, role, mimeType, visibility,
owner.getDAO(), data);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFilename() {
return filename;
}
Media
return mimeType;
}
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
public String getVisibility() {
return visibility;
}
public void setVisibility(String visibility) {
this.visibility = visibility;
}
public User getOwner() {
return owner;
}
public void setOwner(User owner) {
this.owner = owner;
}
}
Media
public interface MediaRepository extends CrudRepository<Media, String> {
}
MediaRepository
public class MediaDAO {
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
private UserDAO owner;
private byte[] data;
public MediaDAO() {
}
public MediaDAO(String id, String filename, long date, String role,
String mimeType, String visibility, UserDAO owner,
byte[] data) {
this.id = id;
this.filename = filename;
this.date = date;
this.role = role;
this.mimeType = mimeType;
MediaDAO
public class MediaDAO {
private String id;
private String filename;
private long date;
private String role;
private String mimeType;
private String visibility;
private UserDAO owner;
private byte[] data;
public MediaDAO() {
}
public MediaDAO(String id, String filename, long date, String role,
String mimeType, String visibility, UserDAO owner,
byte[] data) {
this.id = id;
this.filename = filename;
this.date = date;
this.role = role;
this.mimeType = mimeType;
MediaDAO
private String visibility;
private UserDAO owner;
private byte[] data;
public MediaDAO() {
}
public MediaDAO(String id, String filename, long date, String role,
String mimeType, String visibility, UserDAO owner,
byte[] data) {
this.id = id;
this.filename = filename;
this.date = date;
this.role = role;
this.mimeType = mimeType;
this.visibility = visibility;
this.owner = owner;
this.data = data;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
MediaDAO
public String getMimeType() {
return mimeType;
}
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
public String getVisibility() {
return visibility;
}
public void setVisibility(String visibility) {
this.visibility = visibility;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
public UserDAO getOwner() {
return owner;
}
public void setOwner(UserDAO owner) {
this.owner = owner;
}
MediaDAO

More Related Content

PDF
Creating a Facebook Clone - Part XVIII - Transcript.pdf
PDF
Creating a Facebook Clone - Part XIX.pdf
PDF
Creating a Facebook Clone - Part XX.pdf
PDF
Creating a Facebook Clone - Part XIX - Transcript.pdf
PDF
Creating a Facebook Clone - Part XX - Transcript.pdf
PDF
Creating a Facebook Clone - Part XXIII.pdf
PDF
Creating a Whatsapp Clone - Part XII.pdf
PDF
Creating an Uber Clone - Part XI.pdf
Creating a Facebook Clone - Part XVIII - Transcript.pdf
Creating a Facebook Clone - Part XIX.pdf
Creating a Facebook Clone - Part XX.pdf
Creating a Facebook Clone - Part XIX - Transcript.pdf
Creating a Facebook Clone - Part XX - Transcript.pdf
Creating a Facebook Clone - Part XXIII.pdf
Creating a Whatsapp Clone - Part XII.pdf
Creating an Uber Clone - Part XI.pdf

Similar to Creating a Facebook Clone - Part XVIII.pdf (20)

PDF
Creating a Facebook Clone - Part XXXVIII.pdf
PDF
Creating a Facebook Clone - Part XXXVIII - Transcript.pdf
PDF
Green dao 3.0
PDF
Creating a Whatsapp Clone - Part XII - Transcript.pdf
PDF
Creating a Facebook Clone - Part X.pdf
PDF
Boost Your Development With Proper API Design
PPTX
Techniques for Cross Platform .NET Development
PPTX
Android Architecture Components - Guy Bar on, Vonage
PDF
create-netflix-clone-03-server.pdf
PDF
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
PPTX
Easy data-with-spring-data-jpa
PDF
Di web tech mail (no subject)
PDF
PDFDemo
PPTX
Refactoring - Mejorando el diseño del código existente
DOCX
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
DOCX
Laporan Final Project - Aplikasi Sistem Informasi Rental CD - Netbeans
PDF
Recyclerview in action
PDF
Lombokの紹介
PDF
Paintfree Object-Document Mapping for MongoDB by Philipp Krenn
PDF
NOSQL part of the SpringOne 2GX 2010 keynote
Creating a Facebook Clone - Part XXXVIII.pdf
Creating a Facebook Clone - Part XXXVIII - Transcript.pdf
Green dao 3.0
Creating a Whatsapp Clone - Part XII - Transcript.pdf
Creating a Facebook Clone - Part X.pdf
Boost Your Development With Proper API Design
Techniques for Cross Platform .NET Development
Android Architecture Components - Guy Bar on, Vonage
create-netflix-clone-03-server.pdf
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
Easy data-with-spring-data-jpa
Di web tech mail (no subject)
PDFDemo
Refactoring - Mejorando el diseño del código existente
Laporan pembuatan Final Project (Java - Netbeans) "Rental CD"
Laporan Final Project - Aplikasi Sistem Informasi Rental CD - Netbeans
Recyclerview in action
Lombokの紹介
Paintfree Object-Document Mapping for MongoDB by Philipp Krenn
NOSQL part of the SpringOne 2GX 2010 keynote

More from ShaiAlmog1 (20)

PDF
The Duck Teaches Learn to debug from the masters. Local to production- kill ...
PDF
create-netflix-clone-06-client-ui.pdf
PDF
create-netflix-clone-01-introduction_transcript.pdf
PDF
create-netflix-clone-02-server_transcript.pdf
PDF
create-netflix-clone-04-server-continued_transcript.pdf
PDF
create-netflix-clone-01-introduction.pdf
PDF
create-netflix-clone-06-client-ui_transcript.pdf
PDF
create-netflix-clone-04-server-continued.pdf
PDF
create-netflix-clone-05-client-model_transcript.pdf
PDF
create-netflix-clone-03-server_transcript.pdf
PDF
create-netflix-clone-02-server.pdf
PDF
create-netflix-clone-05-client-model.pdf
PDF
Creating a Whatsapp Clone - Part II.pdf
PDF
Creating a Whatsapp Clone - Part IX - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part II - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part V - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part IV - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part IV.pdf
PDF
Creating a Whatsapp Clone - Part I - Transcript.pdf
PDF
Creating a Whatsapp Clone - Part IX.pdf
The Duck Teaches Learn to debug from the masters. Local to production- kill ...
create-netflix-clone-06-client-ui.pdf
create-netflix-clone-01-introduction_transcript.pdf
create-netflix-clone-02-server_transcript.pdf
create-netflix-clone-04-server-continued_transcript.pdf
create-netflix-clone-01-introduction.pdf
create-netflix-clone-06-client-ui_transcript.pdf
create-netflix-clone-04-server-continued.pdf
create-netflix-clone-05-client-model_transcript.pdf
create-netflix-clone-03-server_transcript.pdf
create-netflix-clone-02-server.pdf
create-netflix-clone-05-client-model.pdf
Creating a Whatsapp Clone - Part II.pdf
Creating a Whatsapp Clone - Part IX - Transcript.pdf
Creating a Whatsapp Clone - Part II - Transcript.pdf
Creating a Whatsapp Clone - Part V - Transcript.pdf
Creating a Whatsapp Clone - Part IV - Transcript.pdf
Creating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part I - Transcript.pdf
Creating a Whatsapp Clone - Part IX.pdf

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
Teaching material agriculture food technology
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Approach and Philosophy of On baking technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
Per capita expenditure prediction using model stacking based on satellite ima...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Understanding_Digital_Forensics_Presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Programs and apps: productivity, graphics, security and other tools
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Chapter 3 Spatial Domain Image Processing.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
sap open course for s4hana steps from ECC to s4
Network Security Unit 5.pdf for BCA BBA.
Approach and Philosophy of On baking technology
MIND Revenue Release Quarter 2 2025 Press Release
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows

Creating a Facebook Clone - Part XVIII.pdf

  • 1. Creating a Facebook Clone - Part XVIII
  • 2. © Codename One 2017 all rights reserved Pros Con Clustering Large Database Reasonable Performance Performance Could be Challenging Simple Simple unless we scale
  • 3. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 4. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 5. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 6. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 7. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 8. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 9. @Entity public class Media { @Id private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } Media
  • 10. @ManyToOne private User owner; @Lob private byte[] data; public Media() { id = UUID.randomUUID().toString(); } public MediaDAO getDAO() { return new MediaDAO(id, filename, date, role, mimeType, visibility, owner.getDAO(), data); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getFilename() { return filename; } Media
  • 11. return mimeType; } public void setMimeType(String mimeType) { this.mimeType = mimeType; } public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public String getVisibility() { return visibility; } public void setVisibility(String visibility) { this.visibility = visibility; } public User getOwner() { return owner; } public void setOwner(User owner) { this.owner = owner; } } Media
  • 12. public interface MediaRepository extends CrudRepository<Media, String> { } MediaRepository
  • 13. public class MediaDAO { private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; private UserDAO owner; private byte[] data; public MediaDAO() { } public MediaDAO(String id, String filename, long date, String role, String mimeType, String visibility, UserDAO owner, byte[] data) { this.id = id; this.filename = filename; this.date = date; this.role = role; this.mimeType = mimeType; MediaDAO
  • 14. public class MediaDAO { private String id; private String filename; private long date; private String role; private String mimeType; private String visibility; private UserDAO owner; private byte[] data; public MediaDAO() { } public MediaDAO(String id, String filename, long date, String role, String mimeType, String visibility, UserDAO owner, byte[] data) { this.id = id; this.filename = filename; this.date = date; this.role = role; this.mimeType = mimeType; MediaDAO
  • 15. private String visibility; private UserDAO owner; private byte[] data; public MediaDAO() { } public MediaDAO(String id, String filename, long date, String role, String mimeType, String visibility, UserDAO owner, byte[] data) { this.id = id; this.filename = filename; this.date = date; this.role = role; this.mimeType = mimeType; this.visibility = visibility; this.owner = owner; this.data = data; } public String getId() { return id; } public void setId(String id) { this.id = id; MediaDAO
  • 16. public String getMimeType() { return mimeType; } public void setMimeType(String mimeType) { this.mimeType = mimeType; } public String getVisibility() { return visibility; } public void setVisibility(String visibility) { this.visibility = visibility; } public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public UserDAO getOwner() { return owner; } public void setOwner(UserDAO owner) { this.owner = owner; } MediaDAO