<groupId>org.scala-libs</groupId>
<artifactId>scalajpa_2.9.1</artifactId>
<version>1.4</version>
- <scope>test</scope>
</dependency>
</dependencies>
package gr.grnet.aquarium.logic
import gr.grnet.aquarium.model._
-import org.scala_libs.jpa.{ThreadLocalEM, LocalEMF}
-
-object DB extends LocalEMF("aquarium", true) with ThreadLocalEM {}
trait Accounts {
def addUserToGroup(u : User, g : Group) = {
- g.users.add u
- DB.persist g
+ g.users.add(u)
+ DB.persist(g)
}
def addUserToOrg(u : User, o : Organization) = {
- o.users.add u
- DB.persist o
+ o.users.add(u)
+ DB.persist(o)
}
}
\ No newline at end of file
package gr.grnet.aquarium.logic
-import gr.grnet.aquarium.model._
-import org.scala_libs.jpa.{ThreadLocalEM, LocalEMF}
-
-object DB extends LocalEMF("aquarium", true) with ThreadLocalEM {}
+import gr.grnet.aquarium.model.User
trait Bills {
--- /dev/null
+package gr.grnet.aquarium.logic
+
+import org.scala_libs.jpa.{ThreadLocalEM, LocalEMF}
+
+object DB extends LocalEMF("aquarium", true) with ThreadLocalEM {}
<class>gr.grnet.aquarium.model.Group</class>
<class>gr.grnet.aquarium.model.User</class>
<class>gr.grnet.aquarium.model.Organization</class>
+ <class>gr.grnet.aquarium.model.ConsumableResource</class>
+ <class>gr.grnet.aquarium.model.ServiceItem</class>
+ <class>gr.grnet.aquarium.model.ServiceItemConfig</class>
<properties>
<property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.H2Platform"/>
--- /dev/null
+package gr.grnet.aquarium.model
+
+import javax.persistence._
+
+@Table(name = "CONSUMABLE_RESOURCE")
+@javax.persistence.Entity
+class ConsumableResource extends Id {
+
+ @Column(name = "NAME")
+ var name : String = _
+
+ @Column(name = "RESOURCE_TYPE")
+ var restype : String = _
+
+ @Column(name = "UNIT_TYPE")
+ var unittype : String = _
+
+ @Column(name = "COST")
+ var cost : Float = _
+
+ @OneToMany(mappedBy = "resource", targetEntity = classOf[ServiceItemConfig],
+ cascade = Array(CascadeType.REMOVE))
+ var configItems : java.util.Set[ServiceItemConfig] = new java.util.HashSet[ServiceItemConfig]()
+}
\ No newline at end of file
@JoinTable(name="USER_GROUP",
joinColumns = Array(new JoinColumn(name="USER_ID")),
inverseJoinColumns = Array(new JoinColumn(name="GROUP_ID")))
- var users : java.util.Set[Group] = new java.util.HashSet[Group]()
+ var users : java.util.Set[User] = new java.util.HashSet[User]()
}
\ No newline at end of file
@OneToMany(mappedBy = "org", targetEntity = classOf[User],
cascade = Array(CascadeType.REMOVE))
- var users : java.util.Set[Group] = new java.util.HashSet[Group]()
+ var users : java.util.Set[User] = new java.util.HashSet[User]()
}
\ No newline at end of file
--- /dev/null
+package gr.grnet.aquarium.model
+
+import javax.persistence._
+
+@javax.persistence.Entity
+@Table(name = "SERVICE_ITEM")
+class ServiceItem extends Id {
+
+ @Column(name = "URL")
+ var url : String = ""
+
+ @OneToMany(mappedBy = "item", targetEntity = classOf[ServiceItemConfig],
+ cascade = Array(CascadeType.REMOVE))
+ var configItems : java.util.Set[ServiceItemConfig] = new java.util.HashSet[ServiceItemConfig]()
+}
--- /dev/null
+package gr.grnet.aquarium.model
+
+import javax.persistence._
+
+case class ServiceItemConfigKey(var item_id : Int, var resource_id : Int)
+
+@Table(name = "SERVICE_ITEM_CONFIG")
+@IdClass(classOf[ServiceItemConfigKey])
+@javax.persistence.Entity
+class ServiceItemConfig {
+
+ //def this() = this("")
+
+ @javax.persistence.Id
+ @Column(name ="SERVICE_ITEM_ID", nullable=false, updatable=false,
+ insertable=false)
+ var item_id: Int = _
+
+ @javax.persistence.Id
+ @Column(name ="CONSUMABLE_RESOURCE_ID", nullable=false, updatable=false,
+ insertable=false)
+ var resource_id: Int = _
+
+ @ManyToOne (cascade = Array(CascadeType.ALL),
+ targetEntity = classOf[ServiceItem])
+ @JoinColumn(name = "SERVICE_ITEM_ID")
+ var item : ServiceItem = _
+
+ @ManyToOne (cascade = Array(CascadeType.ALL),
+ targetEntity = classOf[ConsumableResource])
+ @JoinColumn(name = "CONSUMABLE_RESOURCE_ID")
+ var resource : ConsumableResource = _
+
+ @Column(name = "QUANTITY")
+ var quantity: Int = _
+}
\ No newline at end of file