BAEL-1107 : Introduction to Apache Cayenne Orm (#2650)
* Different types of bean injection in Spring * Difference between two dates in java * Update README.md * Simple clean of difference between dates * Clean my test article * Improve dates diff: for dates and datetimes * Move difference between dates from core-java to libraries * BAEL-890 - Kotlin-Allopen with Spring example * BAEL-1107 - Introduction to Apache Cayenne Orm
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.apachecayenne.persistent;
|
||||
|
||||
import com.baeldung.apachecayenne.persistent.auto._Article;
|
||||
|
||||
public class Article extends _Article {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.apachecayenne.persistent;
|
||||
|
||||
import com.baeldung.apachecayenne.persistent.auto._Author;
|
||||
|
||||
public class Author extends _Author {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.baeldung.apachecayenne.persistent.auto;
|
||||
|
||||
import org.apache.cayenne.CayenneDataObject;
|
||||
import org.apache.cayenne.exp.Property;
|
||||
|
||||
import com.baeldung.apachecayenne.persistent.Author;
|
||||
|
||||
/**
|
||||
* Class _Article was generated by Cayenne.
|
||||
* It is probably a good idea to avoid changing this class manually,
|
||||
* since it may be overwritten next time code is regenerated.
|
||||
* If you need to make any customizations, please use subclass.
|
||||
*/
|
||||
public abstract class _Article extends CayenneDataObject {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String ID_PK_COLUMN = "id";
|
||||
|
||||
public static final Property<String> CONTENT = Property.create("content", String.class);
|
||||
public static final Property<String> TITLE = Property.create("title", String.class);
|
||||
public static final Property<Author> AUTHOR = Property.create("author", Author.class);
|
||||
|
||||
public void setContent(String content) {
|
||||
writeProperty("content", content);
|
||||
}
|
||||
public String getContent() {
|
||||
return (String)readProperty("content");
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
writeProperty("title", title);
|
||||
}
|
||||
public String getTitle() {
|
||||
return (String)readProperty("title");
|
||||
}
|
||||
|
||||
public void setAuthor(Author author) {
|
||||
setToOneTarget("author", author, true);
|
||||
}
|
||||
|
||||
public Author getAuthor() {
|
||||
return (Author)readProperty("author");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.baeldung.apachecayenne.persistent.auto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.cayenne.CayenneDataObject;
|
||||
import org.apache.cayenne.exp.Property;
|
||||
|
||||
import com.baeldung.apachecayenne.persistent.Article;
|
||||
|
||||
/**
|
||||
* Class _Author was generated by Cayenne.
|
||||
* It is probably a good idea to avoid changing this class manually,
|
||||
* since it may be overwritten next time code is regenerated.
|
||||
* If you need to make any customizations, please use subclass.
|
||||
*/
|
||||
public abstract class _Author extends CayenneDataObject {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String ID_PK_COLUMN = "id";
|
||||
|
||||
public static final Property<String> FIRSTNAME = Property.create("firstname", String.class);
|
||||
public static final Property<String> LASTNAME = Property.create("lastname", String.class);
|
||||
public static final Property<List<Article>> ARTICLES = Property.create("articles", List.class);
|
||||
|
||||
public void setFirstname(String firstname) {
|
||||
writeProperty("firstname", firstname);
|
||||
}
|
||||
public String getFirstname() {
|
||||
return (String)readProperty("firstname");
|
||||
}
|
||||
|
||||
public void setLastname(String lastname) {
|
||||
writeProperty("lastname", lastname);
|
||||
}
|
||||
public String getLastname() {
|
||||
return (String)readProperty("lastname");
|
||||
}
|
||||
|
||||
public void addToArticles(Article obj) {
|
||||
addToManyTarget("articles", obj, true);
|
||||
}
|
||||
public void removeFromArticles(Article obj) {
|
||||
removeToManyTarget("articles", obj, true);
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<Article> getArticles() {
|
||||
return (List<Article>)readProperty("articles");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<domain project-version="9">
|
||||
<map name="datamap"/>
|
||||
|
||||
<node name="datanode"
|
||||
factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
|
||||
schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
|
||||
>
|
||||
<map-ref name="datamap"/>
|
||||
<data-source>
|
||||
<driver value="com.mysql.jdbc.Driver"/>
|
||||
<url value="jdbc:mysql://localhost:3306/intro_cayenne"/>
|
||||
<connectionPool min="1" max="1"/>
|
||||
<login userName="root" password="root"/>
|
||||
</data-source>
|
||||
</node>
|
||||
</domain>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd"
|
||||
project-version="9">
|
||||
<property name="defaultPackage" value="com.baeldung.apachecayenne.persistent"/>
|
||||
<db-entity name="article" catalog="intro_cayenne">
|
||||
<db-attribute name="author_id" type="INTEGER" isMandatory="true" length="10"/>
|
||||
<db-attribute name="content" type="VARCHAR" isMandatory="true" length="254"/>
|
||||
<db-attribute name="id" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true" length="10"/>
|
||||
<db-attribute name="title" type="VARCHAR" isMandatory="true" length="254"/>
|
||||
</db-entity>
|
||||
<db-entity name="author" catalog="intro_cayenne">
|
||||
<db-attribute name="firstname" type="VARCHAR" isMandatory="true" length="254"/>
|
||||
<db-attribute name="id" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true" length="10"/>
|
||||
<db-attribute name="lastname" type="VARCHAR" isMandatory="true" length="254"/>
|
||||
</db-entity>
|
||||
<obj-entity name="Article" className="com.baeldung.apachecayenne.persistent.Article" dbEntityName="article">
|
||||
<obj-attribute name="content" type="java.lang.String" db-attribute-path="content"/>
|
||||
<obj-attribute name="title" type="java.lang.String" db-attribute-path="title"/>
|
||||
</obj-entity>
|
||||
<obj-entity name="Author" className="com.baeldung.apachecayenne.persistent.Author" dbEntityName="author">
|
||||
<obj-attribute name="firstname" type="java.lang.String" db-attribute-path="firstname"/>
|
||||
<obj-attribute name="lastname" type="java.lang.String" db-attribute-path="lastname"/>
|
||||
</obj-entity>
|
||||
<db-relationship name="author" source="article" target="author" toMany="false">
|
||||
<db-attribute-pair source="author_id" target="id"/>
|
||||
</db-relationship>
|
||||
<db-relationship name="articles" source="author" target="article" toMany="true">
|
||||
<db-attribute-pair source="id" target="author_id"/>
|
||||
</db-relationship>
|
||||
<obj-relationship name="author" source="Article" target="Author" deleteRule="Nullify" db-relationship-path="author"/>
|
||||
<obj-relationship name="articles" source="Author" target="Article" deleteRule="Deny" db-relationship-path="articles"/>
|
||||
</data-map>
|
||||
Reference in New Issue
Block a user