如何解决我如何将 GeneratedValue 与 Micronaut 和 CompositeKey 结合使用
我正在尝试使用复合键保存实体。 key 的元素之一在数据库中具有默认值,因此我不需要手动设置它。我使用 @GeneratedValue
但它不起作用。 Hibernate 仍在尝试插入 null
值。
例如:
Caused by: org.postgresql.util.PsqlException:
ERROR: null value in column "unit_id" violates not-null constraint
Detail: Failing row contains (null,1,BASIC)
此时我已经完成了 @Embeddable
和 @EmbeddedId
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Embeddable
public class UnitEntityId implements Serializable {
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "unit_id")
private Integer unitId;
@NotNull
@Column(name = "story_version_id")
private Integer storyVersionId;
}
-----------------------------------------------
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "unit",schema = "main_v2")
public class UnitEntity {
@EmbeddedId
private UnitEntityId unitEntityId;
@NotNull
@Column(name = "point_x")
private Integer x;
@NotNull
@Column(name = "point_y")
private Integer y;
@NotNull
@NotBlank
@Column(name = "unit_type")
private String unitType;
}
我尝试保存的 UnitEntity
示例:
var unit = UnitEntity.builder()
.unitType("BASIC")
.x(0)
.y(0)
.unitEntityId(
UnitEntityId.builder()
.storyVersionId(1)
.build()
)
.build();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。