X-Git-Url: https://git.hedgecode.org/?p=chesshog.git;a=blobdiff_plain;f=chesshog-dbetude%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fdomain%2FAuthor.java;fp=chesshog-dbetude%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fdomain%2FAuthor.java;h=7d5fd080d712aaa142767d793f1eb4c7186fa968;hp=0000000000000000000000000000000000000000;hb=4d2b7f345d8079775373d95ab7c1a486cac96519;hpb=ccafd673bfcda89a75f428e58dc06525e1b0a368 diff --git a/chesshog-dbetude/src/main/java/org/hedgecode/chess/domain/Author.java b/chesshog-dbetude/src/main/java/org/hedgecode/chess/domain/Author.java new file mode 100644 index 0000000..7d5fd08 --- /dev/null +++ b/chesshog-dbetude/src/main/java/org/hedgecode/chess/domain/Author.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2018. Developed by Hedgecode. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.hedgecode.chess.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * + * + * @author Dmitry Samoshin aka gotty + */ +@Entity +@Table( + name = "authors" +) +@NamedQueries({ + @NamedQuery( + name = Author.FIND_ALL, + query = "select a from Author a" + ), + @NamedQuery( + name = Author.FIND_BY_ID, + query = "select a from Author a where a.id = :id" + ), + @NamedQuery( + name = Author.FIND_BY_NAME, + query = "select a from Author a where a.name like :name" + ), + @NamedQuery( + name = Author.FIND_BY_BIRTHDATE, + query = "select a from Author a where a.birthdate = :birthdate" + ) +}) +public class Author extends DomainObject { + + public static final String FIND_ALL = "Author.findAll"; + public static final String FIND_BY_ID = "Author.findById"; + public static final String FIND_BY_NAME = "Author.findByName"; + public static final String FIND_BY_BIRTHDATE = "Author.findByBirthDate"; + + public static final String NAME_PARAMETER = "name"; + public static final String BIRTHDATE_PARAMETER = "birthdate"; + + @Id + @Column( + name = "f_id" + ) + @GeneratedValue( + strategy = GenerationType.AUTO + ) + private Long id; + + @Column( + name = "f_name", nullable = false + ) + private String name; + + @Column( + name = "f_birthdate" + ) + @Temporal( + value = TemporalType.DATE + ) + private Date birthdate; + + @Column( + name = "f_deathdate" + ) + @Temporal( + value = TemporalType.DATE + ) + private Date deathdate; + + @Column( + name = "f_biography" + ) + private String biography; + + @Column( + name = "f_comment" + ) + private String comment; + + public TargetType assemble(TargetType target, AuthorAdapter adapter) { + adapter.setId(target, id); + adapter.setName(target, name); + adapter.setBirthdate(target, birthdate); + adapter.setDeathdate(target, deathdate); + adapter.setBiography(target, biography); + adapter.setComment(target, comment); + + return target; + } + + @Override + public Long getId() { + return id; + } + +}