...
Code Block |
---|
|
@Embeddable
@Getter
@ToString@Data
public class ExampleKey implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "name", length = 120)
private String name;
@Column(name = "version", length = 20)
private String version;
}
@Entity
@Table(name = "Example")
@Data
@EqualsAndHashCode
public class JpaExample implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
@VerifyKey
@NotNull
private ExampleKey key;
@Column
private Boolean primed;
@Column(name = "timeStamp", precision = 3)
@Temporal(TemporalType.TIMESTAMP)
@NotNull
private Date timeStamp;
} |
...
Code Block |
---|
language | java |
---|
title | JpaExampleObjMap |
---|
|
@Entity
@Table(name = "ExampleObjMap")
@Data
@EqualsAndHashCode
public class JpaExampleObjMap implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
@VerifyKey
@NotNull
private ExampleKey key;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = @ElementCollectiontrue)
@Lob
private Map<@NotNull String, @NotNull JpaExample> examples;
} |
...
MariaDB [controlloop]> SHOW CREATE TABLE JpaExampleObjMap_EXAMPLES;
+---------------------------+---------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------------------+---------------------------------------------------------------------------------------------------------+
| JpaExampleObjMap_EXAMPLES | CREATE TABLE `JpaExampleObjMap_EXAMPLES` (
`name` varchar(120) DEFAULT NULL,
`version` varchar(20) DEFAULT NULL,
`EXAMPLES` longblob DEFAULT NULL,
`EXAMPLES_KEY` varchar(255) DEFAULT NULL,
KEY `FK_JpaExampleObjMap_EXAMPLES_name` (`name`,`version`),
CONSTRAINT `FK_JpaExampleObjMap_EXAMPLES_name` FOREIGN KEY (`name`, `version`)
REFERENCES `ExampleObjMap` (`name`, `version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+---------------------------+---------------------------------------------------------------------------------------------------------+
Hibernate
MariaDB [controlloop]> SHOW CREATE TABLE JpaExampleObjMap_EXAMPLES;
+---------------------------+---------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------------------+---------------------------------------------------------------------------------------------------------+
| JpaExampleObjMap_EXAMPLES | CREATE TABLE `JpaExampleObjMap_EXAMPLES` (
`name` varchar(120) NOT NULL,
`version` varchar(20) NOT NULL,
`examples_name` varchar(120) NOT NULL,
`examples_version` varchar(20) NOT NULL,
`examples_KEY` varchar(255) NOT NULL,
PRIMARY KEY (`name`,`version`,`examples_KEY`),
UNIQUE KEY `UK_dtga5qcrtu3v2yq7ptbjyqba8` (`examples_name`,`examples_version`),
CONSTRAINT `FK8elsnf63fwlyny8wfl2urejss` FOREIGN KEY (`examples_name`, `examples_version`)
REFERENCES `Example` (`name`, `version`),
CONSTRAINT `FKnkx26gxv04oxbyffxk1h07k1g` FOREIGN KEY (`name`, `version`)
REFERENCES `ExampleObjMap` (`name`, `version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+---------------------------+---------------------------------------------------------------------------------------------------------+
MariaDB [controlloop]> SELECT * FROM JpaExampleObjMap_EXAMPLES;
+---------------+---------+---------------+------------------+--------------+
| name | version | examples_name | examples_version | examples_KEY |
+---------------+---------+---------------+------------------+--------------+
| ExampleObjMap | 1.0.0 | example1 | 1.0.0 | MyKey1 |
| ExampleObjMap | 1.0.0 | example2 | 1.0.0 | MyKey2 |
+---------------+---------+---------------+------------------+--------------+