diff --git a/src/main/kotlin/mobildata/model/MobilData.kt b/src/main/kotlin/mobildata/model/MobilData.kt index c417ab9f3a002aca92ad120373b6f2a737ded9cf..e52620b853ec3794d60a0637882d947a7971b743 100644 --- a/src/main/kotlin/mobildata/model/MobilData.kt +++ b/src/main/kotlin/mobildata/model/MobilData.kt @@ -22,10 +22,8 @@ data class MobilData( var wifiDataUsage: Int?, @Temporal(TemporalType.TIMESTAMP) var actualTime: Date?, - @ElementCollection - @CollectionTable( - name="process", - joinColumns = arrayOf(JoinColumn(name = "process_id"))) + @OneToMany(cascade=arrayOf(CascadeType.ALL), orphanRemoval = true) + @JoinColumn(name = "user_id") var processList: List<MobileProcess>?, @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long = 0) { diff --git a/src/main/kotlin/mobildata/model/MobileProcess.kt b/src/main/kotlin/mobildata/model/MobileProcess.kt index ae4d3ef9ff09e7d131e4a9a05fccac47b294be91..b996b210c4171c5e13baed01ba799ada6ffed30f 100644 --- a/src/main/kotlin/mobildata/model/MobileProcess.kt +++ b/src/main/kotlin/mobildata/model/MobileProcess.kt @@ -1,10 +1,17 @@ package mobildata.model -import javax.persistence.Column -import javax.persistence.Embeddable +import java.lang.reflect.Constructor +import javax.persistence.* -@Embeddable +@Entity +@Table(name = "process") data class MobileProcess( @Column(name="process") - val process: String? = null -){} \ No newline at end of file + val process: String? = null, + @Column(name="user_id") + var user_id: Long, + @Id @GeneratedValue(strategy = GenerationType.AUTO) + var id: Long = 0 +){ + constructor() :this(null, 0, 0) +} \ No newline at end of file diff --git a/src/main/kotlin/mobildata/web/MobilDataHandler.kt b/src/main/kotlin/mobildata/web/MobilDataHandler.kt index 4e939575ee97c3acaeef9c44917469d62158e5ef..138fa597815968dd092ffaa2bebf886ca5ed255f 100644 --- a/src/main/kotlin/mobildata/web/MobilDataHandler.kt +++ b/src/main/kotlin/mobildata/web/MobilDataHandler.kt @@ -21,7 +21,7 @@ class MobilDataHandler (val mobilRepository: MobilDataRepository, private fun inputToMobilData(input : MobilDataIn, user:User? ): MobilData { var processes = ArrayList<MobileProcess>() input.processList?.forEach { - processes.add(MobileProcess(it)) + processes.add(MobileProcess(it, 0, 0)) } return MobilData(user_id = user!!.id, location_lat = input.location?.latitude, location_long = input.location?.longitude, battery = input.battery, diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index 574b08338fe0a0f17c5bb2fda35c92f14a9e9082..f94c008011a895105435517a4dbaeecdf4f99aff 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -18,6 +18,7 @@ create table "user" ( create table process ( id int8 not null, + user_id int8 not null, process VARCHAR(255) ); @@ -36,7 +37,6 @@ create table mobil_data ( battery_temp DOUBLE PRECISION, mobile_data_usage INTEGER, wifi_data_usage INTEGER, - process_id INTEGER, actual_time TIMESTAMP not null, is_charging BOOLEAN );