Support of MarkLogic for Java
CAST supports MarkLogic via its com.castsoftware.nosqljava extension. Details about how this support is provided for Java source code is discussed below.
Supported Libraries
| Library | Version | Supported |
|---|---|---|
| MarkLogic Java Client API | Up to: 8.x | ✅ |
Supported Operations
| Operation | Methods supported |
|---|---|
| Insert | com.marklogic.client.document.DocumentManager.write com.marklogic.client.document.DocumentManager.create com.marklogic.client.document.TextDocumentManager.write com.marklogic.client.document.XMLDocumentManager.write com.marklogic.client.document.JSONDocumentManager.write com.marklogic.client.document.BinaryDocumentManager.write |
| Select | com.marklogic.client.document.DocumentManager.read com.marklogic.client.document.DocumentManager.search com.marklogic.client.document.TextDocumentManager.read com.marklogic.client.document.TextDocumentManager.search com.marklogic.client.document.XMLDocumentManager.read com.marklogic.client.document.XMLDocumentManager.search com.marklogic.client.document.JSONDocumentManager.read com.marklogic.client.document.JSONDocumentManager.search com.marklogic.client.document.BinaryDocumentManager.read com.marklogic.client.document.BinaryDocumentManager.search |
| Delete | com.marklogic.client.document.DocumentManager.delete com.marklogic.client.document.TextDocumentManager.delete com.marklogic.client.document.XMLDocumentManager.delete com.marklogic.client.document.JSONDocumentManager.delete com.marklogic.client.document.BinaryDocumentManager.delete |
| Update | com.marklogic.client.document.DocumentManager.writeMetadata com.marklogic.client.document.TextDocumentManager.writeMetadata com.marklogic.client.document.XMLDocumentManager.writeMetadata com.marklogic.client.document.JSONDocumentManager.writeMetadata com.marklogic.client.document.BinaryDocumentManager.writeMetadata |
Objects
| Icon | Description |
|---|---|
![]() |
Java MarkLogic database |
![]() |
Java MarkLogic collection |
![]() |
Java unknown MarkLogic database |
![]() |
Java unknown MarkLogic collection |
Links
| Link type | Source and destination of link | Methods supported |
|---|---|---|
| belongsTo | From Java MarkLogic collection to Java MarkLogic database object | - |
| useLink | Between the caller Java Method objects (constructors also) and Java MarkLogic Collection Object | - |
| useSelectLink | Between the caller Java Method objects (constructors also) and Java MarkLogic Collection Object | read search |
| useUpdateLink | Between the caller Java Method objects (constructors also) and Java MarkLogic Collection Object | writeMetadata |
| useDeleteLink | Between the caller Java Method objects (constructors also) and Java MarkLogic Collection Object | delete |
| useInsertLink | Between the caller Java Method objects (constructors also) and Java MarkLogic Collection Object | write create |
What results can you expect?
Some example scenarios are shown below:
MarkLogic databse and collection
public class MarkLogicSimpleCrud {
private DatabaseClient client;
private TextDocumentManager docManager;
public MarkLogicSimpleCrud() {
this.client = DatabaseClientFactory.newClient("productdb", 8000, "productdb");
this.docManager = client.newTextDocumentManager();
}
public void createProduct() {
DocumentMetadataHandle metadata = new DocumentMetadataHandle()
.withCollections("products");

Insert Operation
public void createProduct() {
DocumentMetadataHandle metadata = new DocumentMetadataHandle()
.withCollections("products");
docManager.write("products", metadata, new StringHandle("Laptop data"));
}

Select Operation
public void readProduct() {
docManager.read("products", new StringHandle());
}

Update Operation
public void updateProduct() {
docManager.patch("products", null);
}

Delete Operation
public void deleteProduct() {
docManager.delete("products");
}

Known Limitations
- If collection name is not resolved in the CRUD API, then link is created with unknown collection object.



