Wie können wir @Tenantid als Teil des zusammengesetzten Primärschlüssels in Spring Boot JPA herstellen?Java

Java-Forum
Anonymous
 Wie können wir @Tenantid als Teil des zusammengesetzten Primärschlüssels in Spring Boot JPA herstellen?

Post by Anonymous »

Ich habe eine Multi -Mieter -LMS -Anwendung. Ich habe Academy Entität, das in meinem LMS als Mieter fungiert. Jede andere Entität hat Academy_id Spalte.

Code: Select all

@Entity
@Data
public class Academy implements Serializable {
@Id private long id;

@Column(nullable = false)
private String name;

@Column(nullable = false, unique = true)
private String domain;

@Column(nullable = false)
private boolean isActive;

@Column(nullable = false)
private long features;

@Column(nullable = false, updatable = false)
private ZonedDateTime createdAt;

@Column(nullable = false)
@Version
private ZonedDateTime lastModified;

@PrePersist
protected void setCreatedAt() {
createdAt = ZonedDateTime.now();
}
}

Ich habe eine andere Entität, AcademyUser .

Code: Select all

@Entity
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@Table(uniqueConstraints = {@UniqueConstraint(columnNames = {"academy_id", "email"})})
public class AcademyUser extends EntityBase {
@EmbeddedId private AcademyUserKey key;

@Column(nullable = false)
@Enumerated(EnumType.STRING)
private UserType userType;

private PhoneNumber phoneNumber;

@Column(nullable = false)
private String firstName;

@Column(nullable = false)
private String lastName;

@Column(nullable = false)
private boolean isBlocked;

@Column(nullable = false)
private short roles;
}

// AcademyUserKey.java
@Data
@Builder
@Embeddable
@NoArgsConstructor
@AllArgsConstructor
public class AcademyUserKey implements Serializable {
@TenantId
@Column(name = "academy_id") // Map to your database column
private long academyId;

@Column(name = "user_email")
private String email;
}
< /code>
Ich erhalte den folgenden Fehler < /p>
Failed to initialize JPA EntityManagerFactory: Property 'org.w3worker.academy.api_server.academy_user.models.AcademyUser.key.academy' is annotated 'interface org.hibernate.annotations.TenantId' which is not an '@IdGeneratorType'
In Sortierung kann @tenantid als Teil des Primärschlüssels nicht verwendet werden. Gibt es eine Lösung?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post