2015-10-13 5 views
2

Я до сих пор не работал с EclipseLink, и я, похоже, не нашел @NaturalId. Итак, что эквивалентно @NaturalId Hibernate в EclipseLink?EclipseLink эквивалент Hibernate @NaturalID

import javax.persistence.CascadeType; 
import javax.persistence.Embedded; 
import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.ManyToOne; 
import javax.persistence.OneToMany; 

import org.hibernate.annotations.NaturalId; 

import lombok.Data; 

@Entity 
@Data 
public class Task { 

enum Status{DONE,IN_PROGRESS,OPEN,REOPENED} 

@Id 
private long id; 
@NaturalId 
private String taskKey; 
private Status status; 
private int initEstimation; 
@Embedded 
Progress progress; 
} 
+0

Можете ли вы предоставить фрагмент вашего объекта, чтобы мы могли определить требования к использованию? – alliancecoder

ответ

0

Глядя на https://docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/annotations/NaturalId.html @NaturalId аннотаций, кажется, способ указать ограничения на столе, которые будут использоваться при генерации DDL.

Если да, то, как JPA, чтобы сделать то же самое, чтобы определить ограничения себя непосредственно с помощью @UniqueConstraint (columnNames = { «TASKKEY»}) в аннотации для определения таблицы, как показано здесь: JPA - defining multi-column unique constraints

JPA не позволяет маркировать сопоставления неизменяемыми, хотя вы можете пометить поле в карте как insertable = false, updatable = false. EclipseLink также имеет аннотацию @Mutable, описанную здесь: https://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/a_mutable.htm

Смежные вопросы