# Service Properties

There are a few properties you can instantiate the virtual service with or set them afterwards that affect operation. Below you can see a nice chart for them:

| Property           | Type    | Required | Default                       | Description                                                                                                                                       |
| ------------------ | ------- | -------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `entityName`       | string  | true     |                               | The entity name to bind the virtual service with.                                                                                                 |
| `queryCacheRegion` | string  | false    | `#entityName#.defaultVSCache` | The name of the secondary cache region to use when doing queries via this service                                                                 |
| `useQueryCaching`  | boolean | false    | false                         | To enable the caching of queries used by this  service                                                                                            |
| `eventHandling`    | boolean | false    | true                          | Announce interception events on *new()* operations and *save()* operations: *ORMPostNew, ORMPreSave, ORMPostSave*                                 |
| `useTransactions`  | boolean | false    | true                          | Enables ColdFusion safe transactions around all operations that either save, delete or update ORM entities                                        |
| `defaultAsQuery`   | boolean | false    | true                          | The bit that determines the default return value for `list(), executeQuery()` as query or array of objects                                        |
| datasource         | string  | false    | System Default                | The default datasource to use for all transactions. If not set, we default it to the system datasource or the one declared in the persistent CFC. |

So to create a virtual service you can do this:

```java
component extends="cborm.models.VirtualEntityService"{

  UserService function init(){
      super.init( entityName="User", useQueryCaching=true, eventHandling=false );
      return this;    
  }

}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coldbox-orm.ortusbooks.com/v2.x-2/virtual-services/service-properties.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
