<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "swift: 5.9.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftData",
  "identifier" : "/documentation/SwiftData/Schema/Entity",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "SwiftData"
    ],
    "preciseIdentifier" : "s:9SwiftData6SchemaC6EntityC"
  },
  "title" : "Schema.Entity"
}
-->

# Schema.Entity

An object that provides a blueprint for the associated model class.

```
final class Entity
```

## Topics

### Creating an entity

[`init(String)`](/documentation/SwiftData/Schema/Entity/init(_:))

[`init(String, properties: any SchemaProperty...)`](/documentation/SwiftData/Schema/Entity/init(_:properties:))

[`init(String, subentities: Schema.Entity..., properties: any SchemaProperty...)`](/documentation/SwiftData/Schema/Entity/init(_:subentities:properties:))

### Assigning identity

[`var name: String`](/documentation/SwiftData/Schema/Entity/name)

### Managing attributes

[`var attributes: Set<Schema.Attribute>`](/documentation/SwiftData/Schema/Entity/attributes)

[`var attributesByName: [String : Schema.Attribute]`](/documentation/SwiftData/Schema/Entity/attributesByName)

### Defining relationships

[`var relationships: Set<Schema.Relationship>`](/documentation/SwiftData/Schema/Entity/relationships)

[`var relationshipsByName: [String : Schema.Relationship]`](/documentation/SwiftData/Schema/Entity/relationshipsByName)

### Managing properties

[`var properties: [any SchemaProperty]`](/documentation/SwiftData/Schema/Entity/properties)

[`var inheritedProperties: [any SchemaProperty]`](/documentation/SwiftData/Schema/Entity/inheritedProperties)

[`var inheritedPropertiesByName: [String : any SchemaProperty]`](/documentation/SwiftData/Schema/Entity/inheritedPropertiesByName)

[`var storedProperties: [any SchemaProperty]`](/documentation/SwiftData/Schema/Entity/storedProperties)

[`var storedPropertiesByName: [String : any SchemaProperty]`](/documentation/SwiftData/Schema/Entity/storedPropertiesByName)

### Applying constraints

[`var uniquenessConstraints: [[String]]`](/documentation/SwiftData/Schema/Entity/uniquenessConstraints)

### Configuring the inheritance chain

[`var superentity: Schema.Entity?`](/documentation/SwiftData/Schema/Entity/superentity)

[`var superentityName: String?`](/documentation/SwiftData/Schema/Entity/superentityName)

[`var subentities: Set<Schema.Entity>`](/documentation/SwiftData/Schema/Entity/subentities)

### Encoding and decoding

### Hashing

### Comparing entities

### Instance Properties

[`var indices: [[String]]`](/documentation/SwiftData/Schema/Entity/indices)

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Decodable`](/documentation/Swift/Decodable)

[`Encodable`](/documentation/Swift/Encodable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Sendable`](/documentation/Swift/Sendable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)