Hi there,
I trying to use an annotatoin field @version but when updating the record i
don't see any version in the database.
Also,
Element class:
package entities;
import java.io.Serializable;
import java.util.Set;
import javax.annotation.Generated;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
/**
* @author Ken
*/
@Entity
@NamedQueries({
@NamedQuery(name="roots.Element",
query="Select e From Element e" +
" where e.parentElement is null"),
@NamedQuery(name="one.Element",
query="Select e From Element e" +
" where e.dbID = :id")
})
@Table(name="Element")
public class Element implements ElementInterface, Serializable {
private static final long serialVersionUID = 4627343050926103812L;
private String dbID;
private String internID;
private String name;
private String description;
private long version;
private Set<Property> properties;
private Element parentElement;
private Set<Element> childElements;
/**
* This is the default constructor.
*/
public Element() {
}
/**
* @see entities.ElementInterface#setDbID(java.lang.String)
*/
public void setDbID(String dbID) {
this.dbID = dbID;
}
/**
* @see entities.ElementInterface#getDbID()
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator="uuid-hex")
public String getDbID() {
return this.dbID;
}
/**
* @see entities.ElementInterface#setInternID(java.lang.String)
*/
public void setInternID(String internID) {
this.internID = internID;
}
/**
* @see entities.ElementInterface#getInternID()
*/
public String getInternID() {
return this.internID;
}
/**
* @see entities.ElementInterface#getName()
*/
public String getName() {
return this.name;
}
/**
* @see entities.ElementInterface#setName(java.lang.String)
*/
public void setName(String name) {
this.name = name;
}
/**
* @see entities.ElementInterface#setDescription(java.lang.String)
*/
public void setDescription(String description) {
this.description = description;
}
/**
* @see entities.ElementInterface#getDescription()
*/
public String getDescription() {
return this.description;
}
/**
* @see entities.ElementInterface#setVersion(java.util.Date)
*/
private void setVersion(int version) {
this.version = version;
}
/**
* @see entities.ElementInterface#getVersion()
*/
@Version
@GeneratedValue(strategy=GenerationType.AUTO)
public long getVersion() {
return this.version;
}
/**
* Set the element properties.
*
* @param Set<Property> properties
*/
public void setProperties(Set<Property> properties) {
this.properties = properties;
}
/**
* Get the element properties.
*
* @return Set<Property>
*/
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER,
mappedBy="element")
public Set<Property> getProperties() {
return properties;
}
/**
* Set the element parent.
*
* @param Element parentElement
*/
public void setParentElement(Element parentElement) {
this.parentElement = parentElement;
}
/**
* Get the element parent.
*
* @return Element
*/
@ManyToOne(optional=true, fetch=FetchType.LAZY)
@ForeignKey(name="FK_parent_element")
@JoinColumn(name="parent_element", referencedColumnName="dbID")
public Element getParentElement() {
return parentElement;
}
/**
* Set the element children.
*
* @param Set<Element> childElements
*/
public void setChildElements(Set<Element> childElements) {
this.childElements = childElements;
}
/**
* Get the element children.
*
* @return Set<Element>
*/
@OneToMany(cascade=CascadeType.ALL, mappedBy="parentElement",
fetch=FetchType.EAGER)
public Set<Element> getChildElements() {
return childElements;
}
}
Class Property:
package entities;
import java.io.Serializable;
import javax.persistence.*;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
/**
* @author Ken
*/
@Entity
@NamedQueries({
@NamedQuery(name="all.properties",
query="Select p From Property p"),
@NamedQuery(name="elementTemplate.properties",
query="Select p From Property p" +
" where p.elementTemplate = :owner"),
@NamedQuery(name="one.property",
query="Select p From Property p" +
" where p.dbID = :id")
})
@Table(name="Property")
public class Property implements Serializable {
private static final long serialVersionUID = -6988886476498387460L;
private String dbID;
private String property;
private String value;
private Element element;
private ElementTemplate elementTemplate;
/**
* This is the default constructor.
*/
public Property() {
}
/**
* Set the property dbID.
*
* @param String dbID
*/
public void setDbID(String dbID) {
this.dbID = dbID;
}
/**
* Get the property dbID.
*
* @return
*/
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="uuid-hex")
public String getDbID() {
return this.dbID;
}
/**
* Set the property property
*
* @param String property
*/
public void setProperty(String property) {
this.property = property;
}
/**
* Get the property property.
*
* @return String
*/
public String getProperty() {
return property;
}
/**
* Set the property value.
*
* @param String value
*/
public void setValue(String value) {
this.value = value;
}
/**
* Get the property value.
*
* @return String
*/
public String getValue() {
return value;
}
/**
* Set property element.
*
* @param Element element
*/
public void setElement(Element element) {
this.element = element;
}
/**
* Get the property element.
*
* @return Element
*/
@ManyToOne(fetch=FetchType.LAZY)
@ForeignKey(name="FK_property_element")
@JoinColumn(name="element")
public Element getElement() {
return element;
}
/**
* Set the property elementTemplate.
*
* @param ElementTemplate elementTemplate
*/
public void setElementTemplate(ElementTemplate elementTemplate) {
this.elementTemplate = elementTemplate;
}
/**
* Get the property elementTemplate.
*
* @return ElementTemplate
*/
@ManyToOne(fetch=FetchType.LAZY)
@ForeignKey(name="FK_property_elementTemplate")
@JoinColumn(name="elementTemplate")
public ElementTemplate getElementTemplate() {
return elementTemplate;
}
}
to update the element I do this:
Element element = em.find(Element.class, elementID);
//Add changements to the element
// update the element.
em.persist(element);
The update worked but I don't see any version number in my database field.
Please help :)
--
View this message in context: http://n2.nabble.com/Version-annotation-tp4013067p4013067.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.
|