All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jtransfo.demo.domain.Person Maven / Gradle / Ivy

/*
 * This file is part of jTransfo, a library for converting to and from transfer objects.
 * Copyright (c) PROGS bvba, Belgium
 *
 * The program is available in open source according to the Apache License, Version 2.0.
 * For full licensing details, see LICENSE.txt in the project root.
 */

package org.jtransfo.demo.domain;

import lombok.Data;
import org.hibernate.annotations.ForeignKey;

import javax.persistence.Basic;
import javax.persistence.CascadeType;
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.OneToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.SequenceGenerator;
import java.util.List;

/**
 * Simple representation of a person.
 */
@Data
@Entity(name = "person")
@SequenceGenerator(name = "seq", sequenceName = "person_seq")
public class Person implements Comparable {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
    private Long id;

    @Basic
    private String name;

    @ManyToOne(cascade = CascadeType.ALL, optional = true, fetch = FetchType.LAZY)
    @PrimaryKeyJoinColumn
    @ForeignKey(name = "person_address")
    private Address address;

    @Basic
    private String comment;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = false)
    @JoinColumn(name = "person_id")
    @ForeignKey(name = "person_voiceContact")
    private List voiceContacts;

    @Override
    public int compareTo(Person other) {
        return name.compareTo(other.name);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy