by Anonymous » 10 Jun 2025, 15:16
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?
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]@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();
}
}
[/code]
Ich habe eine andere Entität, AcademyUser .[code]@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'
[/code]
In Sortierung kann @tenantid als Teil des Primärschlüssels nicht verwendet werden. Gibt es eine Lösung?