- 浏览: 232898 次
文章列表
建立一对多双向关联关系
- 博客分类:
- hibernate
前面已经介绍过客户订单的关系,主要是从订单到客户的多对一关系出发,那么如果你要获取一个客户下的所有订单呢,嗯,还要考虑一对多的关系。
1. 类的设计
public class Customer{
private long id;
private String name;
private Set orders = new HashSet();
}
2. hibernate的配置
//原先的客户表中只有id int 和 name varchar(30),原先的数据库表中根本没
//有orders字段,显然不能用property ...
在数据库设计中,很多实体之前并不是简单的一对一关系。有些可能是多对一,多对多关系。下面的文章中以常见的客户订单之间的关系为例,介绍在hibernate中,如果去配置多对一的关系。
1. 实体分析
客户和订单之间是一对多的关系,或者说订单和客户之间是多对一的关系。按照上面的思想,可以设计出两种方式的类关系。
//方式一
public class Customer{
private long id;
private String name;
private Set<Order> orders;
}
pub ...
由前一篇的代码,运行代码如下:public class StatementHelper {
public static String getStatement(String actionName, Object obj) {
return null;
}
public static Field[] getFileds(Object obj){
Class<?> classType = obj.getClass();
return classType.getDeclaredFields();
}
public static v ...
本文演示java注解的使用
1. getDeclaredFields方法
这个方法返回当前对象中的声明的Filed数组,只返回当前类,不会返回父类的Field.
public class News extends Article {
public News(int id, Date createDate, Date modifyDate, String title,
String content, boolean isPublication) {
super(id, createDate, modifyDate, title, cont ...
1. 线程安全的类
一个类是否是线程安全的,主要看这个类在多线程中是否能被安全的使用。
2. 线程安全的例子
@ThreadSafe
public class StatelessFactorizer implements Servlet {
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractFromRequest(req);
BigInteger[] factors = factor(i);
...
<html>
<head>
<title>File System Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
// ...
AbstractList
- 博客分类:
- java语言基础
public abstract class AbstractList<E> extends AbstractCollection<E> implements
List<E> {
protected AbstractList() {
}
public boolean add(E o) {
add(size(), o);
return true;
}
abstract public E get(int index);
public E set(int index, E element) {
thro ...
public interface Set<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E o);
boolean remove(Object o);
boolean containsAll(Coll ...
public interface List<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E o);
boolean remove(Object o);
boolean containsAll( ...
Collection源码
- 博客分类:
- java语言基础
public interface Collection<E> extends Iterable<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();//继承自Iterable
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E o);
boolean remove(Object o);
boolea ...
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
/**
* Socket implementation of the ...
TTransport
- 博客分类:
- thrift
package org.apache.thrift.transport;
public abstract class TTransport {
/**
* Queries whether the transport is open.
*
* @return True if the transport is open.
*/
public abstract boolean isOpen();
/**
* Is there more data to be read?
*
* @return True if ...
相对定位是一个非常容易掌握的概念。如果对某一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素相对于它的起点移动。如果将top设置为20px,那么框将出现在原位置顶部下面20px的地方。如果将left设置为20px,那么他会在元素左边创建20px的空间,也就是元素将向右移动。
在使用相对定位时,无论是否移动,元素仍然占据原来的空间。因此,移动元素会导致覆盖其他的框。
外边距叠加是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混要。简单的说,当两个或更多的垂直外边距相遇时,他们将形成一个外边距。这个外边距高度等于两个发生叠加的外边距的高度中的较大者。
当一个元素出现在另一个元素上面时,第一个元素的底外边距与第二个元素的顶外边距发生叠加。 当一个元素包含在另一个元素中时,外层的顶和底外边距分别将于内层的顶和底边距叠加。
外边距甚至可以与本身发生叠加。假设有一个空元素,他有外边距,但是没有边框或内边距,在这种情况下,顶外边距将和底外边距碰到一起,就发生叠加了。
外边距,初看起来比较奇怪,但是它实际上有重 ...