Итак, у меня есть модель с именем Issue
, эта модель имеет отношение под названием IssueType
.
A Issue
имеет type_id
, который связывает их вместе.
A IssueType
имеет id
и name
, которые уникальны.
Проблема в том, что когда я хочу создать проблему, я хочу отправить запрос, подобный этому
POST https://server/issues
Content-Type: application/json
{
"description": "just some random description",
"type": "Generic"
}
Итак, type
- это name
из IssueType
при его создании.
Как мне это сделать?
@Table(name = "issues")
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity
public class Issue {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "description")
private String description;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "type_id", referencedColumnName = "id")
private IssueType type;
}
@Table(name = "issue_types")
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity
public class IssueType {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column()
private String name;
}
@RepositoryRestResource(
collectionResourceRel = "issues",
path = "issues",
excerptProjection = IssueProjection.class
)
public interface IssueRepository extends JpaRepository<Issue, Long> {
}
@Projection( types = Issue.class)
public interface IssueProjection {
Long getId();
Double getLongitude();
Double getLatitude();
Integer getFloor();
String getDescription();
@Value("#{target.type.name}")
String getType();
}