/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2011, Red Hat Inc. or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. All third-party contributions are * distributed under license by Red Hat Inc. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA */ package org.hibernate.test.annotations.naturalid; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Version; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.NaturalId; import org.hibernate.annotations.NaturalIdCache; /** * @author Guenther Demetz */ @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @NaturalIdCache public class A { @Id @GeneratedValue(strategy = GenerationType.TABLE) private long oid; @Version private int version; @Column @NaturalId(mutable = false) private String name; @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @org.hibernate.annotations.OptimisticLock(excluded = true) @javax.persistence.OneToMany(mappedBy = "a") private Set<D> ds = new HashSet<D>(); @javax.persistence.OneToOne private D singleD = null; public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<D> getDs() { return ds; } public void setDs(Set<D> ds) { this.ds = ds; } public D getSingleD() { return singleD; } public void setSingleD(D singleD) { this.singleD = singleD; } }